我正在尝试找到一个可用于匹配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*/
应该成为:
select * from valid_sql1;
select * from valid_sql2;
select * from valid_sql3;
非常感谢任何帮助。
答案 0 :(得分:3)
答案 1 :(得分:1)
(?s)/\*.*?\*/|--comment[^\r\n]*
空地。
这将删除您的评论。您必须匹配整个文件,而不是逐行匹配。
答案 2 :(得分:1)
如何忽略SQL字符串中的注释。
--comment1
select * from /*my table*/sample where a = 's -- string'
and c = 'ss/**/ /* */
/*123*/'
/*
*
*/
/* */
/**/