Schrift
[thread]10864[/thread]

Variablen in Regulären Ausdrücken



<< >> 3 Einträge, 1 Seite
roli
 2007-11-22 18:09
#102809 #102809
User since
2004-12-31
424 Artikel
BenutzerIn
[default_avatar]
Hi,

ich möchte gerne alle Leerzeichen um eine bestimmte "Teilzeichenkette" herum in einer grossen Zeichenkette loeschen. Dazu habe ich mir folgendes ausgedacht:
Code: (dl )
$zeichenkette =~ s/\s*(\$suchstring)\s*/$1/g;

Wenn ich $zeichenkette unmittelbat vor- und nach dieser Zeile ausgebe, passiert einfach nix, obwohl die in $suchstring abgelegte Zeichenkette enthalten ist, und auch Leerzeichen drum herum sind. Ich gehe mal davon aus, das ich meinen Suchstring so nicht angeben kann, leider weiss ich aber auch nicht wie ich's besser machen koennte.

Danke
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2
Gast Gast
 2007-11-22 18:16
#102811 #102811
Du hasst $suchstring escaped.
Das darfst du natürlich nicht, denn dann sucht deine RegExp nach '$suchstring' und nicht deren Inhalt.

Um die Sonderzeichen in $suchstring zu escapen benutzt man \Q ... \E.
Code: (dl )
$zeichenkette =~ s/\s*(\Q$suchstring\E)\s*/$1/g;


MfG Horst
roli
 2007-11-22 18:29
#102812 #102812
User since
2004-12-31
424 Artikel
BenutzerIn
[default_avatar]
Bingo, das war's

Danke
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2
<< >> 3 Einträge, 1 Seite



View all threads created 2007-11-22 18:09.