Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7015[/thread]

Regex



<< >> 4 Einträge, 1 Seite
GloBoX
 2005-05-26 20:42
#55143 #55143
User since
2005-05-25
8 Artikel
BenutzerIn
[default_avatar]
Hallo,

Weiß vieleicht jemand wo man richtig lange und gute Tutorials über regex findet? Und mit lang meine ich auch lang :)
Ich hab mir so viele tutorials durchgelesen und begreiffe es einfach nicht...

folgendes beispiel:
Ich möchte von der ftp addresse user, passwort, ip und port extrahieren. Doch das will nich so ganz...

Code: (dl )
1
2
3
$bla="ftp://asdf:bsfsf@127.0.0.1:21"; 
($user, $pass, $ip, $port) = $bla =~ /^ftp\:\/\/([^:]+):([^\@]+)\@([^:]+):(.+)$/;
print "$user - $pass - $ip - $port"


Wenn jemand mein match verbessert wäre es nett wenn mir der jenige sagt was ich denn falsch gemacht habe.

gruß gbx

*edit*

Noch eine Frage zu strict..
Mein Programm funktioniert ja jetzt nur wenn ich "use strict;" lasse führt der mein Programm garnicht aus sondern gibt mir noch errors. Wenn ich strict allerdings weg lasse funktioniert alles so wie es soll

gbx\n\n

<!--EDIT|GloBoX|1117131901-->
Strat
 2005-05-26 21:09
#55144 #55144
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
teste mal:
Code: (dl )
1
2
3
4
#! /usr/bin/perl
use warnings;
use strict;
my $bla="ftp://asdf:bsfsf@127.0.0.1:21";

dann behebe den fehler duch escapen des @ oder setze den string in einfache anfuehrungszeichen, und dann schau nochmal, was dein code macht...

use strict; und use warnings; helfen einem sehr bei der entwicklung, und wenn du sie verwendest haettest, haette dir perl selbst gesagt, was da "an deiner regex" nicht passt\n\n

<!--EDIT|Strat|1117127481-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Dubu
 2005-05-26 21:21
#55145 #55145
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Und uebrigens - es gibt auch Module, mit denen man URIs zerpfluecken kann:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl
use strict;
use warnings;
use URI;

my $uri = URI->new('ftp://asdf:bsfsf@127.0.0.1:21');

print "Scheme:   ", $uri->scheme(),
   "\nUser:     ", $uri->user(),
   "\nPassword: ", $uri->password(),
   "\nHost:     ", $uri->host(),
   "\nPort:     ", $uri->port(),
   "\nPath:     ", $uri->path(),
"\n";
GloBoX
 2005-05-26 21:59
#55146 #55146
User since
2005-05-25
8 Artikel
BenutzerIn
[default_avatar]
Danke für die schnellen Antworten.
Nach dem escapen des @ hat es leider immernoch nicht funktioniert aber das mit URI hat mir sehr geholfen. Danke

*edit*

Doch klar hab das @ nicht beachtet... funtzt beides
Super tolles board :)

globox\n\n

<!--EDIT|GloBoX|1117130506-->
<< >> 4 Einträge, 1 Seite



View all threads created 2005-05-26 20:42.