Java正则表达式:匹配一个char,除了前面有另一个char

时间:2013-06-07 13:39:47

标签: java regex

我正在尝试使用String.Split()来拆分查询,在这种情况下是一个HiveQL查询。

我的情况是,我希望在;之前拆分,除非;前面有\。 我的问题:

String.Split(";") 

还不够。

String.Split("[^\\\\];") 

(即不是\后跟;

select table; count table; 

会为小组"select tabl"" count tabl"提供,因此我会在;之前丢失该字符。

有什么解决方案吗?

1 个答案:

答案 0 :(得分:11)

您需要negative lookbehind

String.Split("(?<![\\\\]);");

这是demo on ideone