考虑下面的这个字符串,我想在单引号上拆分一个字符串,而不是前面跟\,而不是带有正则表达式的另一个单引号('')。
注意:在下面的字符串中,这是两个连续的单引号而不是双引号。
Java is my 'favorite\''\'' prog' language
我用过
split("(?<!\\\\)'")
但不起作用。相反,它也会在每个连续的单引号中以反斜杠
开头我想要这个输出
Java is my
favorite\''\'' prog
language
答案 0 :(得分:2)
看看lookbehind / lookahead
("(?<![\\\\'])'(?!')")
答案 1 :(得分:2)
对于此示例,您还可以匹配单个'
引号和单词边界\b
,反之亦然:
split("'\\b|\\b' ")
或者使用负面的后观和负面的预测将空白考虑在内:
split("(?<![\\\\'])' ?(?!')")
致@Graciano来设置解决方案。
答案 2 :(得分:0)
从你的例子中我建议使用与
类似的东西split("[^\\\\']'")
但要注意角落的情况。