我正在使用replaceAll()将单冒号改为双冒号,以此作为逃避"他们。但如果有人输入2个或更多的冒号,那么它就不会逃过冒号。
我尝试了这个/(:)([^::])/g
作为我的正则表达式。但它取消了冒号后的章程,例如:
10:11:12变为10 :: 1 :: 2
答案 0 :(得分:4)
搜索(?<!:):(?!:)
并替换为::
其中(?<!:)
是一个负面的后视,假设冒号前没有冒号,而(?!:)
是一个假设结肠后没有冒号的loolahead。
<强>代码:强>
String s = "10:11:12 78:::78";
System.out.println(s.replaceAll("(?<!:):(?!:)", "::"));
<强>输出:强>
10::11::12 78:::78