reguläre ausdrücke -> bin draußen
reguläre ausdrücke -> bin draußen
am 28.08.2006 13:47:25 von Oliver Wilkening
Hallo NG,
es geht um folgenden minimalen Code
#!/usr/bin/perl
use strict;
my $zeile = "{link:http://de.selfhtml.org/{SELFHTML-Seiten}}"
$zeile =~ m/^\{link:(.*):\/\/(.*)\{(.*)\}\}\s*$/;
print "\$1: $1\t\$2: $2\t\$3: $3\n"
Ich komme beim ausdruck mit der Erklärung noch ganz gut mit BIS auf den
Schluß: "\s*$/"
Das Doofe ist, habs selber mal geschrieben... Heißt es, "Leerzeichen bis
zum Zeilenumbruch ignorieren"?
Danke,
Oliver
Re: reguläre ausdrücke -> bin draußen
am 28.08.2006 13:59:35 von Oliver Bandel
Oliver Wilkening wrote:
> Hallo NG,
>
> es geht um folgenden minimalen Code
>
> #!/usr/bin/perl
> use strict;
>
> my $zeile = "{link:http://de.selfhtml.org/{SELFHTML-Seiten}}"
>
> $zeile =~ m/^\{link:(.*):\/\/(.*)\{(.*)\}\}\s*$/;
> print "\$1: $1\t\$2: $2\t\$3: $3\n"
>
>
> Ich komme beim ausdruck mit der Erklärung noch ganz gut mit BIS auf den
> Schluß: "\s*$/"
> Das Doofe ist, habs selber mal geschrieben... Heißt es, "Leerzeichen bis
> zum Zeilenumbruch ignorieren"?
"\s*$" meint keins oder eins oder mehrere Blanks bis zum Ende der Zeile.
M.a.W.: da dürfen nur noch Blanks und Zeilenende folgen,
oder sofort das Zeilenende.
Gruß,
Oliver
Re: reguläre ausdrücke -> bin draußen
am 28.08.2006 21:36:15 von Michael Perle
Oliver Bandel wrote:
> "\s*$" meint keins oder eins oder mehrere Blanks bis zum Ende der Zeile.
Du meinst nicht Blanks sondern Whitespace.
\s steht fuer Whitespace-Zeichen (' ', \n, \r oder \t)
\s* fuer 0 oder mehr Whitespace-Zeichen
$ = Ende des Ausdrucks.
Re: reguläre ausdrücke -> bin draußen
am 06.09.2006 13:42:59 von Klaus
Michael Perle wrote:
> Oliver Bandel wrote:
> > "\s*$" meint keins oder eins oder mehrere Blanks bis zum Ende der Zeile.
>
> Du meinst nicht Blanks sondern Whitespace.
>
> \s steht fuer Whitespace-Zeichen (' ', \n, \r oder \t)
Du hast \f vergessen.
Siehe "perldoc perlretut" :
+++++++++++++++++++++++++++++++++
++ \s is a whitespace character and represents [\ \t\r\n\f] "
+++++++++++++++++++++++++++++++++
> $ = Ende des Ausdrucks.
Siehe "perldoc perlre" :
+++++++++++++++++++++++++++++++++
++ $ Match the end of the line (or before newline at the end)
+++++++++++++++++++++++++++++++++
So wie ich das verstehe steht "$" fuer:
1. entweder vor dem physikalischen Ende eines Strings
2. oder vor einem Zeilenumbruch "\n" der sich direkt am physikalischen
Ende eines Strings befindet.
Re: reguläre ausdrücke -> bin draußen
am 04.10.2006 15:41:23 von Michael Perle
Klaus wrote:
> Michael Perle wrote
>>\s steht fuer Whitespace-Zeichen (' ', \n, \r oder \t)
> Du hast \f vergessen.
Erinnert mich irgenwie immer an alte
Neun-Nadel-Drucker und Formulare, die
nicht passen wollten. Hatte ich verdrängt.
> So wie ich das verstehe steht "$" fuer:
>
> 1. entweder vor dem physikalischen Ende eines Strings
>
> 2. oder vor einem Zeilenumbruch "\n" der sich direkt am physikalischen
> Ende eines Strings befindet.
3. vor jedem Zeilenumbruch, wenn der Match mit der
Option m ausgeführt wird.