Patrick Andrieu: Slash ersetzen

Beitrag lesen

Hallo Berc!

Dann haben wir s/Suchmuster/ersatz usw.
$importdirectory=~ s///\/g; haut nicht hin.

Wenn der Slash »/« Deine Delimiter (Begrenzungszeichen) sind, was passiert Deiner Meinung nach mit Deinem Beispiel?

$importdirectory=~ s///\/g;

^^^
Ersetze nichts durch nichts, alles hinter dem dritten »/« wird nicht beachtet und dürfte sogar eine Fehlermeldung oder Warnung auswerfen.

Alles, was Du an Delimiter benutzt, muss, falls diese im Such- oder Ersetzungsmuster vorkommen, maskiert werden. Zusätzlich müssen Zeichen, die in RegExps eine besondere Bedeutung haben, auch maskiert werden:

s//\/g; # ersetzt einen Slah durch einen Backslash.

Da es so aber schwer lesbar ist (mit / als Delemiter, da / auch noch im Muster vorkommt), kannst Du andere Delimiter nehmen:

s!/!\!g;

oder

s{/}{\}g; # bei Klammern paarweise!

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?