2016-10-03 5 views
-3

Ich bin noch ein Anfänger in Java, aber soweit ich weiß, um reguläre Ausdrücke zu verwenden, muss ich es in [ ] schreiben, also warum das funktioniert und wie die JVM weiß, dass es reguläre Ausdrücke und nicht nur ein String ist?Wie erkennt der Compiler den String als regulären Ausdruck?

s = s.replaceAll("\\s+$" , ""); 
+0

Es hat keine Ahnung, es ist ein regulärer Ausdruck. Es ist nur eine Zeichenfolge. –

+0

Siehe [* 'replaceAll()' *] (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll (java.lang.String,% 20java.lang .String)) help: * Ersetzt jede Teilzeichenkette dieser Zeichenkette, die dem gegebenen regulären Ausdruck entspricht, mit der gegebenen Ersetzung *. Es ist das erste Argument der Methode, das als regulärer Ausdruck analysiert wird. –

Antwort

1

Da die JVM Anweisungen gegeben wurde, um das erste Argument von replaceAll() Methode als RegexMuster parsen.

+0

also die [] sind nicht nur in dieser Methode notwendig? –

+0

Sie sind, wenn Sie sie als ** Teil ** der Regex-Formel verwenden möchten. – rorschach

+0

Aus der Sicht der Terminologie ist es besser, ein regex * -Muster * zu verwenden, nicht regex * formula *. –

Verwandte Themen