MudGuard: Problem mit regläruem Ausruck

Beitrag lesen

Hi,

'%(document|window).location.href\s*=\s*(?("|')+\s*(?P<url>[^\s"']+)\s*\2+)?;?%is'

'%(document|window).location(.href)?\s*=\s*(?("|')+\s*(?P<url>[^\s"']+)\s*\2+)?;?%is'

und eben dieser will einfach nicht matchen.  Der einzige Unterschied zum  vorigen ist, daß .href nun geklammert (mit ? eins | keins) ist.

Ja, und da Du die capturing-Variante ( '(bla)' ) eingesetzt hast statt der non-capturing-Variante ( '(?:bla)' ), verschieben sich für die anderen capturing Klammern natürlich die Nummern, der Rück-Bezug \2 bezieht sich jetzt auf eine andere Klammer als vorher.

Weiss vielleicht jemand, worans liegt?

Ja, s.o.

Tipp: Grundsätzlich capturing nur dann verwenden, wenn es auch tatsächlich gebraucht wird. Neben der Nebenwirkung mit der Änderung der Zählung hat überflüssiges capturing auch noch einen Effizienzverlust zur Folge.

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.