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