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

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

我的情况是我想分开; 除非那个; 之前是\ 。 我的问题 :

 String.Split(";") 

是不足够的。

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

(即不是一个\后跟一个; )应用

 select table; count table; 

会给群组"select tabl"" count tabl" ,所以我在之前失去了角色;

有什么解决方案吗?

你需要一个负面的观察 :

 String.Split("(? 

这是一个关于ideone的演示 。