Thread Regexp: Ersetzungsausdruck mitbenutzen
(25 answers)
Opened by #Kein Kommentar at 2008-07-12 21:22 Code (perl): (dl
)
1 2 3 $replace = quotemeta $replace; $replace =~ s/\\\\([1-9][0-9]*)/\$$1/g; $string =~ s/$find/qq{"$replace"}/gee; das sollte gehn, das quotemeta vorher ist zur sicherheit, damit der user keinen perl-code einschmuggeln kann, denn das /ee nach der regex bedeutet ein string-eval. edit: [1-9][0-9]* statt \d+, sonst könnte man $0 interpolieren. Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wie frage ich & perlintro brian's Leitfaden für jedes Perl-Problem |