有没有办法根据出现的次数替换子字符串?

sil*_*oid 1 java regex

我想删除每一个"*"但忽略的事件,"**"例如,如果我有"testing *single star* and **double star**",删除后的句子就是"testing single star and **double star**".

我正在考虑使用,replace("*", "")但是当我尝试使用时,它摆脱了所有的星星.

我该怎么办?

Wik*_*żew 7

您可以利用外观

String s = "testing *single star* and **double star**".replaceAll("(?<![*])[*](?![*])", "");
Run Code Online (Sandbox Code Playgroud)

IDEONE演示(结果:testing single star and **double star**)

*成一个字符类让您无须逃避匹配一个星号.

(?<![*])如果在星号之前没有星号,那么这是一个负面的后观检查,并且(?![*])是一个负向前瞻,确保在匹配星号后没有星号.