2

我想用正则表达式替换字符串中所有出现的“=”与“==”,但仅在出现“=”的情况下。

基本上我想改造:

where a = b | c == d

进入

where a == b | c == d

我正在努力寻找的只是一个事件。我试过[^=]=[^=]了,但这也匹配两边的字符。

4

3 回答 3

4

您可以尝试使用环视

(?<!=)=(?!=)

使用您的示例:

System.out.println("where a = b | c == d".replaceAll("(?<!=)=(?!=)", "=="));
其中 a == b | c == d
于 2013-09-03T22:42:24.273 回答
1
[^=](=)[^=]

正则表达式可视化

在 Debuggex 上实时编辑

只需使用捕获组并以这种方式选择它们。

于 2013-09-03T22:54:50.580 回答
0

只要使用两边都有空间的情况。" = " becomes " == "

String str = input.replace(" = ", " == ");

编辑

如果您正在寻找a=6存在的情况并想要实现它a==6并且您无法利用定位空间,您可以尝试

[\w ](=)[\w ]

正则表达式可视化

在 Debuggex 上实时编辑

于 2013-09-03T22:42:19.617 回答