我想在带有正则表达式的字符串中用“==”替换所有出现的“=”,但仅限于出现“=”的情况。
基本上我想改造:
where a = b | c == d
到
where a == b | c == d
我正在努力寻找的只是一次。我已经尝试了[^=]=[^=]
,但这也与两边的角色相匹配。
答案 0 :(得分:3)
您可以尝试使用lookarounds:
(?<!=)=(?!=)
使用您的示例:
System.out.println("where a = b | c == d".replaceAll("(?<!=)=(?!=)", "=="));
where a == b | c == d
答案 1 :(得分:1)
答案 2 :(得分:0)
只要使用两侧都有空间的情况。 " = " becomes " == "
String str = input.replace(" = ", " == ");
修改的
如果您正在寻找a=6
存在且想要成为a==6
并且您无法利用定位空间的情况,您可以尝试
[\w ](=)[\w ]