将字符串用单引号作为拆分点拆分为子字符串,而不是引号,然后是后斜切(),然后再引用其他引号



考虑到下面的此字符串,我想在不在之前的单个引号上拆分一个字符串,而不是其他单个引号(''(带有regex。

注意:在下面的一个字符串中,这些是两个连续的单引号,而不是双引号。

Java is my 'favorite'''' prog' language

我使用

split("(?<!\\)'")

但行不通。取而代

我想要这个输出

Java is my  
favorite'''' prog  
language 

看一下lookbehind/lookahead

("(?<![\\'])'(?!')")

在此示例中,您也可能匹配单个'报价和单词边界 b,而另一种方式:

'b|b'

split("'\b|\b' ")

示例java

或带有负面的外观和负面的lookahead考虑了空格:

(?<![\'])' ?(?!')

split("(?<![\\'])' ?(?!')")

示例java

将解决方案设置的@graciano信用。

在您的示例中,我建议使用类似于

的东西
split("[^\\']'")

但是要小心角案。

最新更新