Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式:匹配一个字符,除非前面有另一个字符_Java_Regex - Fatal编程技术网

Java正则表达式:匹配一个字符,除非前面有另一个字符

Java正则表达式:匹配一个字符,除非前面有另一个字符,java,regex,Java,Regex,我试图使用String.Split()来拆分查询,在这种情况下是一个HiveQL查询 我的情况是我想沿着分裂除非该前面有一个\。 我的问题是: String.Split(";") 这还不够 String.Split("[^\\\\];") (即不是一个\后面跟着一个;)应用于 select table; count table; 将给组“select tabl”,“count tabl”,因此我丢失了之前的字符 有什么解决办法吗 您需要一个: String.Split("(?<

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

我的情况是我想沿着
分裂除非该
前面有一个
\
。 我的问题是:

String.Split(";") 
这还不够

String.Split("[^\\\\];") 
(即不是一个
\
后面跟着一个
)应用于

select table; count table; 
将给组
“select tabl”
“count tabl”
,因此我丢失了
之前的字符

有什么解决办法吗

您需要一个:

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

String.Split(“(?)由于这是一个单字符匹配,因此不需要方括号当一行中可能有多个转义字符时,Split不是解决方案。