java - 在 Java 中将 replaceAll 与包含特殊字符的字符串一起使用

标签 java special-characters replaceall

基本上,这就是我要做的:

String s = "to+go+la";

s.replaceAll("to+go", "");

应该返回 "+la"

我知道如果我只是替换 + 符号,我会使用 \\+,但我不确定嵌入符号后我该做什么。将它们从两者中删除是最好的答案吗?这对我的目的有用,但它看起来像是胶带的答案。

最佳答案

... but it seems like a duct tape answer.

这似乎是一个“胶带”答案,因为您还没有了解为什么在仅替换“+”字符时需要使用 \+

答案是“+”是一个正则表达式元字符。意思是“在此之前的字符或组可能出现一次或多次”。


如果您希望将 "to+go" 视为文字字符串(而不是正则表达式),那么一种方法是使用“正则表达式引用”它;例如

s.replaceAll(Pattern.quote("to+go"), "");

另一方面,如果 + 字符完全不相关,那么删除它们也可以......

关于java - 在 Java 中将 replaceAll 与包含特殊字符的字符串一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12024972/

相关文章:

64 位系统上的 Java native 接口(interface) 32 位 dll

python - Pandas.read_csv() 在列名中带有特殊字符(重音符号)

linux - bash 中前面注释的第一个参数的简写是什么?最后是 '$!'

javascript - 绑定(bind) knockout 数据模型中的特殊字符

java - 什么是 Xuggler 的好替代品,因为它的开发已经停止?

java - 我的数据库连接 getter 不起作用/我无法解决这个问题?

java - Gradle Wrapper 将运行时参数包装在构建调用中

java - String.replaceAll 的正则表达式

java - 删除字符串中的空格和特殊字符(仅限数字之间)

java - 将 Java 正则表达式捕获组替换为其自身的一部分