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

C4s*_*tor 8 java regex

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

我的情况是我要分开,;除非;前面有一个\.我的问题 :

String.Split(";") 
Run Code Online (Sandbox Code Playgroud)

是不足够的.

String.Split("[^\\\\];") 
Run Code Online (Sandbox Code Playgroud)

(即不是a \后跟a ;)申请

select table; count table; 
Run Code Online (Sandbox Code Playgroud)

会给团体"select tabl"," count tabl"所以我失去了之前的角色;.

有什么解决方案吗?

das*_*ght 11

你需要一个负面的观察背景:

String.Split("(?<![\\\\]);");
Run Code Online (Sandbox Code Playgroud)

这是关于ideone演示.