我想用正则表达式替换字符串中所有出现的“=”与“==”,但仅在出现“=”的情况下。
基本上我想改造:
where a = b | c == d
进入
where a == b | c == d
我正在努力寻找的只是一个事件。我试过[^=]=[^=]
了,但这也匹配两边的字符。
您可以尝试使用环视:
(?<!=)=(?!=)
使用您的示例:
System.out.println("where a = b | c == d".replaceAll("(?<!=)=(?!=)", "=="));
其中 a == b | c == d
只要使用两边都有空间的情况。" = " becomes " == "
String str = input.replace(" = ", " == ");
编辑
如果您正在寻找a=6
存在的情况并想要实现它a==6
并且您无法利用定位空间,您可以尝试
[\w ](=)[\w ]