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.