Java不能与正则表达式一起使用,表示:无效的转义序列

MJB*_*MJB 39 java regex whitespace android

我想用"+"替换字符串中的所有空白字符,用"ss"替换所有"ß"......它适用于"ß",但不知何故eclipse不会让我使用\ s作为空格.我尝试了"\ t",但它也不起作用..我收到以下错误:

无效的转义序列(有效转义序列为\ b\t \n\f\r \"\\\ \)

这是我的代码:

try {
    String temp1 = from.getText().toString();
    start_from  = temp1.replaceAll("ß", "ss");
    start_from  = start_from.replaceAll("\s", "+");
}
Run Code Online (Sandbox Code Playgroud)

为什么不起作用?这是android,eclipse还是什么问题?

提前致谢!

Rob*_*rco 61

你需要逃避斜线

start_from  = start_from.replaceAll("\\s", "+");
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!棒极了的网站!:-)"你不能在11分钟内接受答案"...... ;-) (4认同)

Dav*_*und 9

问题是\java中的转义字符以及正则表达式模式.如果你想匹配正则表达式模式\n,比如说,你会继续写下来

replaceAll("\n", "+");
Run Code Online (Sandbox Code Playgroud)

正则表达式模式最终不会成为\n:它将成为一个实际的换行符,因为这就是"\n"Java 中的含义.如果您希望模式包含反斜杠,则需要确保转义反斜杠,以便不将其视为字符串中的特殊字符.

replaceAll("\\s", "+");
Run Code Online (Sandbox Code Playgroud)