正则表达式查找 sql 注释

Joh*_*ker 2 regex

我正在尝试找到一个可用于匹配 SQL 样式注释的正则表达式。单行注释相当简单 --.* 但是我不知道如何匹配多行注释。我不需要实际的替换代码,只需要正则表达式来匹配注释。

例如:

select * from valid_sql1;

select * from valid_sql2; --comment here

--comment select * from this_is_still_a_comment;

 /*
 select * from this_is_not_valid;
 */

 /*comment*/ select * from valid_sql3; /*this is a comment*/
Run Code Online (Sandbox Code Playgroud)

应该变成:

 select * from valid_sql1;

 select * from valid_sql2;

 select * from valid_sql3;
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏。

rev*_*evo 5

g如果您的 Regex 引擎接受,则使用lobal 修饰符:

/\/\*.*?\*\/|--.*?\n/gs
Run Code Online (Sandbox Code Playgroud)

s 多行注释匹配需要修饰符。

演示