Sehen Sie, was es passt:
public static void main(String[] args) throws Exception {
Pattern pat = Pattern.compile("(?<!function)\\w+");
Matcher mat = pat.matcher("function example");
while (mat.find()) {
System.out.println(mat.group());
}
}
Ausgang:
function
xample
So zuerst findet function
, die durch "function
" nicht vorangeht. Dann findet es xample
, dem function e
vorausgeht und daher nicht "function
".
Vermutlich wollen Sie das Muster der ganze Text passen, nicht nur Matches in der Text finden.
können Sie entweder tun dies mit Matcher.matches()
oder Sie können das Muster ändern Start- und Ziel Anker hinzuzufügen:
^(?<!function)\\w+$
ich den zweiten Ansatz bevorzugen, da es bedeutet, dass das Muster selbst seinen Match Bereich definiert dann eher der Region wird durch ihre Verwendung definiert. Das ist nur eine Frage der Präferenz.