Thread Suche und Ersetzen von <?php und <!-- (15 answers)
Opened by newperler at 2011-04-26 19:20

pq
 2011-04-26 19:26
#148007 #148007
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
naja, das fragezeichen ist ein zeichen mit besonderer bedeutung in regexes.
x? bedeutet, matche auf "x", und das 0 oder 1 mal.
du musst ein fragezeichen also escapen.
dann kommst du auf folgendes:
$contents =~ s/(<\?php.*\?>)/ /gsi;
das wiederum wird auch noch nicht ganz reichen, da es dir bei mehr als einem tag den kompletten content zwischen den tags auch mit löschen wird. weil nämlich .* "greedy" ist, d.h. es matcht soviel wie möglich.
lösung:
$contents =~ s/(<\?php.*?\?>)/ /gsi;

hinter einem .* hat das fragezeichen die funktion: "mache den vorhergehenden ausdruck non-greedy".

http://p3rl.org/perlretut
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 Suche und Ersetzen von <?php und <!--