Negative Lookaround Regex - Nur ein Vorkommen - Java
Ich versuche herauszufinden, ob eine Zeichenfolge enthälteinziger Vorkommen eines Wortes,
z.B.
String : `jjdhfoobarfoo` , Regex : `foo` --> false
String : `wewwfobarfoo` , Regex : `foo` --> true
String : `jjfffoobarfo` , Regex : `foo` --> true
mehrerefoo
's kann irgendwo in der Zeichenkette vorkommen, sie können also nicht aufeinanderfolgend sein,
Ich teste den folgenden Regex-Matching in Java mit Stringfoobarfoo
, aber es funktioniert nicht und es kehrt zurückwahr :
static boolean testRegEx(String str){
return str.matches(".*(foo)(?!.*foo).*");
}
Ich weiß, dass dieses Thema doppelt erscheinen mag, aber ich bin überrascht, wenn ich diesen regulären Ausdruck verwende:(foo)(?!.*foo).*
Es klappt !
Irgendeine Idee, warum das passiert?