Beat: Problem mit Negative Lookbehind Assertion

Beitrag lesen

wieso erkennt der regukläre Ausdruck
  /(?<!/zeugdazwischen)/zeugamende/
korrekterweise die Zeichenketten
  "zeugamanfang/zeugamende"
  "zeugamanfang/wasanderes/zeugamende"

während der Ausdruck

/zeugamanfang(?<!/zeugdazwischen)/zeugamende/
nur noch die erste Zeichenkette trifft (getestet mit preg_match in PHP 5)? Ich möchte doch einfach nur der negative lookbehind assertion etwas voranstellen. Wieso führt das zu einem Problem?

Weil lookaheads/lookbehinds non consuming sind.

"zeugamanfang/wasanderes/zeugamende"

wäre zu mätschen mit

/wasanderes(?<!/zeugdazwischen)/zeugamende/

Das Pattern sagt:
unmittelbar vor "/zeugamende" MUSS "wasanderes" UND es darf nicht
"/zeugdazwischen" unmittelbar vor "/zeugamende" stehen.

mfg Beat

--
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o
Der Valigator leibt diese Fische