mental.dIseASe
Lieutenant
- Registriert
- Dez. 2008
- Beiträge
- 671
Guten Abend,
mich plagt das folgende Problem:
dort kommt merkwürdigerweise true zurück. So wie ich Look-Ahead verstanden habe, sollte dieser Ausdruck eigentlich folgendes akzeptieren:
Folgen von Klein- und Großbuchstaben, wobei nach keinem Buchstabe ein kleines "s" kommen darf. Im Beispiel ist aber ein s enthalten und folgt daher auf einen Klein- oder Großbuchstaben. Deswegen sollte (laut meiner Intuition) dort eigentlich false zurückkommen.
Genauso merkwürdig finde ich das folgende:
Dort kommt "&&" zurück, obwohl der String, gegen den gecheckt wird, eine Länge von 1 hat. Kann mir das jemand erklären? Wird hier etwa der Leerstring wegen dem Sternchen noch als Match erkannt?! Ich weiß schon, wieso ich sonst solche Sachen immer an einen Kollegen delegiere...
mich plagt das folgende Problem:
Code:
Pattern.compile("[a-zA-Z(?!s)]*").matcher("AAas").matches()
dort kommt merkwürdigerweise true zurück. So wie ich Look-Ahead verstanden habe, sollte dieser Ausdruck eigentlich folgendes akzeptieren:
Folgen von Klein- und Großbuchstaben, wobei nach keinem Buchstabe ein kleines "s" kommen darf. Im Beispiel ist aber ein s enthalten und folgt daher auf einen Klein- oder Großbuchstaben. Deswegen sollte (laut meiner Intuition) dort eigentlich false zurückkommen.
Genauso merkwürdig finde ich das folgende:
Code:
Pattern.compile("[A-Z(?!s)]*").matcher("A").replaceAll("&")
Dort kommt "&&" zurück, obwohl der String, gegen den gecheckt wird, eine Länge von 1 hat. Kann mir das jemand erklären? Wird hier etwa der Leerstring wegen dem Sternchen noch als Match erkannt?! Ich weiß schon, wieso ich sonst solche Sachen immer an einen Kollegen delegiere...