2016-10-03 60 views
-3

我仍然是Java的初学者,但据我所知,为了使用正则表达式,我必须在[ ]中编写它,为什么这会起作用以及JVM如何知道它是正则表达式而不仅仅是一些字符串?编译器如何检测字符串是正则表达式?

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

它不知道这是一个正则表达式。这只是一个字符串。 –

+0

请参阅[*'replaceAll()'*](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang .String))help:*将此字符串的每个子字符串替换为给定替换*的给定正则表达式。它是解析为正则表达式的方法第一个参数。 –

回答

1

因为JVM已经给出指令,以解析replaceAll()方法的第一个参数作为正则表达式模式。

+0

所以[]在这个方法中不是必需的吗? –

+0

他们是如果你想使用它们作为正则表达式公式的**部分**。 – rorschach

+0

从术语的角度来看,使用regex * pattern *而不是regex * formula *更合适。 –

相关问题