Java字符串替换'&'与&但不是&到& amp;

时间:2014-08-29 01:21:29

标签: java regex string replace ampersand

我有一个大字符串,我有&以下模式中使用的字符 -

A&B
A & B
A& B
A &B
A&B
A & B
A& B
A &B

我想替换所有出现的& &的字符 在替换此内容时,我还需要确保不会错误地将&转换为&。我如何以精通业绩的方式做到这一点?我使用正则表达式吗?如果是的话,请你帮我解决正确的正则表达式吗?

到目前为止,我一直试着追随没有快乐:

data = data.replace(" & ", "&"); // doesn't replace all &
data = data.replace("&", "&");   // replaces all &, so & becomes &

2 个答案:

答案 0 :(得分:39)

您可以使用带有否定前瞻的正则表达式。

正则表达式字符串为&(?!amp;)

使用replaceAll,您将获得:

A&B
A & B
A& B
A &B
A&B
A & B
A& B
A &B

因此单个字符串str的代码为:

str.replaceAll("&(?!amp;)", "&");

答案 1 :(得分:4)

你可以尝试这个,它应该有效:

 /.../.../../../../.../IMFCore.framework/IMFCore(WLHTTPClientResponse.o)
    /.../../../../../.../WorklightSDK/libWorklightStaticLibProject.a(WLHTTPClientResponse.o)
ld: 153 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这样您首先将所有data = data.replaceAll("&","&").replaceAll("&","&"); 替换为&,以便您拥有&,然后用&替换所有&