Thread Regexp: Ersetzungsausdruck mitbenutzen (25 answers)
Opened by #Kein Kommentar at 2008-07-12 21:22

pq
 2008-07-12 22:17
#112036 #112036
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
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: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Regexp: Ersetzungsausdruck mitbenutzen