Thread durch eigene error_log läuft script (18 answers)
Opened by bieber at 2007-08-02 10:43

bloonix
 2007-08-02 12:56
#97238 #97238
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
bieber+2007-08-02 10:36:41--
was ich nicht verstehe ist die Konstruktion ?:

Du weißt doch, was Runde Klammern in einer Regex machen?
Runde Klammern veranlassen eine Regex dazu, das, was sie
matchen, in einer Variable abzuspeichern... du kennst doch
bestimmt die Variablen $1, $2, $3 etc.

?: in einer runden Klammer veranlasst eine Regex, den Match
nicht in einer dieser Variablen abzuspeichern. Beispiele:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
my $string = 'foo bar baz';

$string =~ /(\w+) (\w+) (\w+)/;

print "1: $1, 2: $2, 3: $3\n";

$string =~ /(\w+) (?:\w+) (\w+)/;

print "1: $1, 2: $2\n";

print "3: is empty\n" unless $3;


1: foo, 2: bar, 3: baz
1: foo, 2: baz
3: is empty


Wie du sehen kannst, ist bei dem zweiten print baz in $2 und nicht in $3,
da ich die Regex angewiesen habe, den Match in der zweiten Klammer
nicht abzuspeichern.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
foreach (@datei) {
next if /
^ # vom Anfang der Zeile
\s* # 0 oder alle Whitespaces
( # Anfang des Captures
?: # es soll nicht gecaptured werden
[#;] # # oder ;
| # ODER
$ # das Ende der Zeile
) # Ende des Captures
/x; # beachte keine Whitespaces
chomp; my @work = split /\s+/;
}
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.

View full thread durch eigene error_log läuft script