我正在寻找一个正则表达式来从sql中删除注释行。所有评论都以“COMMENT ON”(显然)开头,但可能往往有多行。我能够想出一个表达式来移除一条线但是我正在努力争取多条线。我希望删除的典型条目如下所示:
COMMENT ON TABLE account_heading IS $$
This table holds the account headings in the system. Each account must belong
to a heading, and a heading can belong to another heading. In this way it is
possible to nest accounts for reporting purposes.$$;
所以我需要的是一个正则表达式,它遵循多行直到它看到的点 分号。
我想出了一个将搜索到第二行并停在双倍美元($$)的那个。我昨天刚开始使用RegEx,请原谅我,如果这绝对是完全错误的(我相信它是):
^COMMENT ([^\n\r]+)[\n\r]([\$;\n\r]+)
我在TextWrangler中使用Mac上的Grep选项进行此操作。
谢谢!
答案 0 :(得分:0)
也许类似于COMMENT\sON.*?\$\$;
- 如果您能够将编辑器设置为在多行上匹配(通常通过指定s
标志),它应该有用。
答案 1 :(得分:0)
好吧,我不太了解SQL,但如果你想要'$$'之间的内容,只需使用:
\${2}[^\${2}]*\${2};
如果您想要“IS”字后的所有内容:
COMMENT .*? IS ([^;]*)
匹配任何非分号的内容(获取第一组,而不是匹配)。