考虑到下面的此字符串,我想在不在之前的单个引号上拆分一个字符串,而不是其他单个引号(''(带有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("[^\\']'")
但是要小心角案。