java - 转义 '\' 以与 Java ReplaceAll 方法一起使用

标签 java escaping replace

使用 String 类的 ReplaceAll 方法时,我得到了一些奇怪的结果。

字符串查询包含以下内容:@cm:name:"hello"

如果我说 query.replaceAll(":", "\\:");

我期望以下结果:@cm\:name\:"hello"

相反,我得到:@cm:name:"hello"。原始内容。

最佳答案

不要使用 replaceAll(..) 进行非正则表达式替换。请改用 replace(..)

然后,请确保:

query = query.replace(":", "\\:");

因为 String 是不可变的 - 即,如果您只是调用该方法而不分配结果,您什么也得不到 - 对象的内部状态不会改变。

关于java - 转义 '\' 以与 Java ReplaceAll 方法一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3355477/

相关文章:

java - Java中的int可以为null吗?

java - 在运行方法之前检查参数的最佳方法

javascript - HTML 属性转义

python - 在 python 中更改字符串的特定部分

bash - sed 在 bash 脚本中不起作用

Android 构建 gradle - 替换字符串资源值

java - 在 win 32 位中构建的 java 或 .NET 项目与另一个在 win 64 位中构建的项目之间有什么区别吗?

Bash 脚本 cd 到路径名中有空格的目录

C# 构建数据中包含分号的 JSON 字符串

java - 使用 printwriter 时删除新行