我正在尝试在Java中编写一个正则表达式,它删除段落中的所有非字母数字字符,除了单词之间的空格.
这是我写的代码:
paragraphInformation = paragraphInformation.replaceAll("[^a-zA-Z0-9\s]", "");
Run Code Online (Sandbox Code Playgroud)
但是,编译器给了我一条错误消息,指出s说这是一个非法的转义字符.在我将\ s添加到正则表达式的末尾之前,程序编译好了,但问题是段落中的单词之间的空格被删除了.
我该如何解决这个错误?
jqn*_*qno 39
你需要双重逃避\
角色:"[^a-zA-Z0-9\\s]"
Java将解释\s
为Java String转义字符,这确实是一个无效的Java转义.通过写入\\
,您可以转义\
角色,实际上是将单个\
字符发送到正则表达式.这\
便成为正则表达式的转义字符的一部分\s
.
Nom*_*Sim 10
你需要转义\,以便正则表达式识别\ s:
paragraphInformation = paragraphInformation.replaceAll("[^a-zA-Z0-9\\s]", "");
Run Code Online (Sandbox Code Playgroud)
一般来说,每当您看到该错误时,这意味着您只有一个反斜杠,而您需要两个反斜杠:
paragraphInformation = paragraphInformation.replaceAll("[^a-zA-Z0-9\\s]", "");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
51253 次 |
最近记录: |