Negative Lookaround Regex - Tylko jedno wystąpienie - Java
Próbuję znaleźć, jeśli zawiera łańcuchtylko jeden wystąpienie słowa,
na przykład
String : `jjdhfoobarfoo` , Regex : `foo` --> false
String : `wewwfobarfoo` , Regex : `foo` --> true
String : `jjfffoobarfo` , Regex : `foo` --> true
wielokrotnośćfoo
mogą się zdarzyć w dowolnym miejscu ciągu, więc mogą być niesekwencyjne,
Testuję następujące dopasowanie wyrażeń regularnych w java za pomocą łańcuchafoobarfoo
, ale to nie działa i wracaprawdziwe :
static boolean testRegEx(String str){
return str.matches(".*(foo)(?!.*foo).*");
}
Wiem, że ten temat może wydawać się duplikatem, ale jestem zaskoczony, ponieważ kiedy używam tego wyrażenia regularnego:(foo)(?!.*foo).*
to działa !
Jakiś pomysł, dlaczego tak się dzieje?