Aus meinem Verständnis von regulären Ausdrücken muss die Zeichenfolge "00 ###" mit "[0-9]" übereinstimmen, aber nicht mit "^ [0-9] $". Aber es funktioniert nicht mit Java Regexp's.
Nach einiger Untersuchung dieses Problems fand ich die folgenden Informationen (http://www.wellho.net/solutions/java-regular-expressions-in-java.html):
Es könnte scheinen, dass reguläre Java- Ausdrücke werden standardmäßig verankert mit sowohl ein^und $ -Zeichen.
Können wir sicher sein, dass dies für alle Versionen von JDK gilt? Und kann dieser Modus deaktiviert werden (d. H. Um die Standardverankerung mit^und $ zu deaktivieren)?
Dies ist nicht einzigartig für Java, BTW. Python, und ich glaube auch, JavaScript, haben einige Regex-Methoden, die standardmäßig ankern, und andere, die das nicht tun. –
@Laurence: Die Methoden 'test()', 'exec()' und 'match()' von JavaScript funktionieren alle gleich: Wenn Sie möchten, dass die Übereinstimmung verankert wird, müssen Sie sie selbst verankern. Auf der anderen Seite funktioniert Pythons 'match()' Methode wie Javas 'lookingAt()'; Die Übereinstimmung wird am Anfang der Zeichenfolge verankert, aber nicht bis zum Ende. –