MudGuard: Perl Regex Frage

Beitrag lesen

Hi,

Regex zum extrahieren von Variablen (vereinfacht)

\$[a-z]+(\.[a-z]+)*(\.set\(\))?

in der ersten runden Klammer willst Du nicht .set() erlauben. Also füge einen negative lookahead ein:

\$[a-z]+((?!\.set\(\))\.[a-z]+)*(\.set\(\))?

trifft alle Deine Strings so wie gewünscht. Und versagt auch nicht bei sowas:

<§if $a.set.c.set() != 0§>
<§if $a.setzdichhin.c.set() != 0§>
<§if $a.trendsetter.c.set() != 0§>

ist allerdings - um Gunnars Anmerkung zuvorzukommen - kein regulärer Ausdruck mehr, nur noch ein Such-Muster.

cu,
Andreas a/k/a MudGuard