Ich habe Regex wie folgt aus:Warum funktioniert diese Regex mit Rückreferenzen in Regex101, aber nicht in PHP?
/(style=([\"']))([^\2]+)(\2)/
es in regex101 arbeiten, aber in php es nicht übereinstimmen:
echo preg_replace("/(style=([\"']))([^\2]+)(\2)/", '$3', 'style="foo"');
diese Rückkehr style="foo"
statt foo
, warum meine regex arbeiten in nicht PHP?
Ich habe auch versucht dies, dass auch nicht funktionieren:
/(style=([\"']))((?!\2).+)(\2)/
UPDATE:
diese Rückkehr foo"
warum nicht foo
:
echo preg_replace("/(style=([\"']))([^\2]+)/", '$3', 'style="foo"');
Vielleicht nicht viel Hilfe. Aber ich habe Ihre Regex in .NET ausprobiert und es hat perfekt funktioniert. Nicht sicher, warum PHP Probleme damit hat. – silkfire
[Eine Antwort] (http://stackoverflow.com/a/6051114/3536236) – Martin
PHP kann HTML-Parsing durchführen, wenn dies Ihre Regex versucht: http://php.net/manual/en/domodocument .loadhtml.php – arcanine