如何用&替换\?

Yan*_*Gao 1 java regex

在Java中,我需要改变这个:

myid=460\u0026url=http%3A%2F%2Fr20-xxxx

......对此:

myid=460&url=http%3A%2F%2Fr20-xxxx

这是我尝试过的:

String map = "myid=460\\u0026url=http%3A%2F%2Fr20-xxxx";

p = Pattern.compile("\\u0026");
m = p.matcher(map);

if (m.find()) {
    String ret = m.replaceAll("&");
}
Run Code Online (Sandbox Code Playgroud)

......但是找不到了\u0026.

rge*_*man 7

如果必须使用正则表达式,则必须转义Java字符串中的反斜杠.然后你必须转义两个反斜杠以进行正则表达式解释.尝试

p = Pattern.compile("\\\\u0026");
Run Code Online (Sandbox Code Playgroud)

但是replace对于Java来说,一个简单的应该就足够了(它不使用正则表达式),只有一次迭代转义为反斜杠:

ret = map.replace("\\u0026", "&");
Run Code Online (Sandbox Code Playgroud)