在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("&");
}
...但找不到\u0026
。
答案 0 :(得分:7)
如果必须使用正则表达式,则必须转义Java字符串中的反斜杠。然后你必须转义两个反斜杠以进行正则表达式解释。尝试
p = Pattern.compile("\\\\u0026");
但是一个简单的replace
应该足够了(它不使用正则表达式),对于Java只有一次转义的反斜杠转义:
ret = map.replace("\\u0026", "&");
答案 1 :(得分:-3)
不像
这么简单"myid=460\u0026url=http%3A%2F%2Fr20-xxxx".replace("\u0026", "&");
工作?