正则表达式匹配每个出现直到字符除外如果前面的字符是某个字符

时间:2015-09-19 02:28:44

标签: regex

以下正则表达式:

[^;].+?(?=;)

将匹配任何内容,直到&#39 ;;'

example: select * from table;select * from tableb;

只有select语句会匹配,这就是我想要的,但是以防我

select * from /; tablec ;

我希望匹配为select * from /; tablec,即忽略前面有'/'的半冒号

1 个答案:

答案 0 :(得分:4)

像这样改变你的正则表达式,

[^;](?:\/;|.)+?(?=;)

(?:\/;|.)这会使/;.任何字符贪婪地匹配一次或多次。

DEMO

使用负面的lookbehind。

[^;].+?(?=(?<!\/);)