Regex 正则表达式匹配每个出现的字符,除非前一个字符是某个字符

Regex 正则表达式匹配每个出现的字符,除非前一个字符是某个字符,regex,Regex,以下正则表达式: [^;].+?(?=;) 将匹配任何内容,直到“;” example: select * from table;select * from tableb; 只有select语句将被匹配,这是我想要的,但是如果我有 选择*from/;表c 我希望匹配是select*from/;表C即在像这样更改您的正则表达式之前忽略带有'/'的分号 [^;](?:\/;|.)+?(?=;) (?:\/;|)这将匹配/或任意字符贪婪地重复一次或多次 或 使用负向后看 [^;].+?(?=(

以下正则表达式:

[^;].+?(?=;)
将匹配任何内容,直到“;”

example: select * from table;select * from tableb;
只有select语句将被匹配,这是我想要的,但是如果我有

选择*from/;表c


我希望匹配是
select*from/;表C
即在

像这样更改您的正则表达式之前忽略带有
'/'的分号

[^;](?:\/;|.)+?(?=;)
(?:\/;|)
这将匹配
/
任意字符贪婪地重复一次或多次

使用负向后看

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

[^;]。+?(?=(?像这样更改您的正则表达式

[^;](?:\/;|.)+?(?=;)
(?:\/;|)
这将贪婪地匹配
/;
任何字符一次或多次

使用负向后看

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

[^;]。+?(?=)谢谢你的回答!第二个更有效还是不同?谢谢你的回答!第二个更有效还是不同?