3

在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.

4

2 回答 2

9

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

p = Pattern.compile("\\\\u0026");

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

ret = map.replace("\\u0026", "&");
于 2013-06-28T19:24:38.110 回答
-3

没有那么简单的事情

"myid=460\u0026url=http%3A%2F%2Fr20-xxxx".replace("\u0026", "&");

工作?

于 2013-06-28T19:22:46.053 回答