正则表达式匹配没有前一个字符的字符

时间:2014-07-25 10:20:05

标签: java regex

我有以下字符串:

"location-string:location-string:location-C?:\string"

我想分成以下三个字符串:

location-string location-string location-C?:\string

使用String.split(regex)时,正则表达式应该是什么?

基本上,我想分开结肠':'字符除了前面带有'?'字符!

提前致谢, PM。

2 个答案:

答案 0 :(得分:6)

你可以使用负面的lookbehind。它匹配前面没有?

的冒号
(?<!\?):

Java正则表达式,

"(?<!\\?):"

DEMO

答案 1 :(得分:0)

您可以使用split()限制。

public static void main(String[] args) {
    String s = "location-string:location-string:location-C?:\\string";
    System.out.println(Arrays.toString(s.split(":", 3))); 
}

O / P:

[location-string, location-string, location-C?:\string]