Thread Frage zu Backreferences (13 answers)
Opened by DemoFreak at 2003-09-17 21:12

format_c
 2003-09-17 23:57
#53444 #53444
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Nicht ganz. Die Anzahl der Treffer eher. Noch genauer gesagt bekommst du die Anzahl nur im skalaren Kontext.

Diese Eigenschaft wird auch gern für boolsche Bedingungen verwendet.
unless ($string =~ /(wort)/g)...
das passiert jedoch nur wenn das Pattern captured.
Ist das nich der Fall gibt diese Anweisung ein boolsches true oder false zurück.
Du kannst auch alle Capturings der Treffer ( in ()) in einer Variable speichern:
Code (perl): (dl )
my @words = $string =~ /\b(\w+)\b/;

Jetzt ist jedes Element des Arrays words ein Wort aus string.

Um den Zauber mal aus dem Begriff "Backreference" zu nehmen überlegen wir mal was nochmal Beckreferences sind.

Meines Wissens so etwas
Code (perl): (dl )
$string =~ /(zeichenkette) \1/;

Dort ent hält die \1 innerhalb der RegEx den Wert der eigendlich in $1 landen würde.
Damit kann man zum beispiel, zwar etwas rudimentär aber veranschaulicht, doppelte Wörter aus einem Satz filtern:
Code: (dl )
1
2
3
4
my $string = "das das ist mein mein teststring";

$string =~ s/\b(\w+)\b \1/$1/g;
print $string;


Was du jetzt jedoch mit deiner Fragestellung bezwecken wolltest, kann ich immer noch nicht nachvollziehen.
Lass doch mal die Katze aus dem Sack und gib mal ein paar Fallbeispiele wenn man es nicht so gut erklären kann.
*jetztbistduamzug*

Gruß Alex\n\n

<!--EDIT|format_c|1063830901-->

View full thread Frage zu Backreferences