正则表达式在文本编辑器中搜索以查找条目

时间:2012-08-08 19:45:31

标签: sql regex textwrangler

我正在寻找一个正则表达式来从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选项进行此操作。

谢谢!

2 个答案:

答案 0 :(得分:0)

也许类似于COMMENT\sON.*?\$\$; - 如果您能够将编辑器设置为在多行上匹配(通常通过指定s标志),它应该有用。

答案 1 :(得分:0)

好吧,我不太了解SQL,但如果你想要'$$'之间的内容,只需使用:

\${2}[^\${2}]*\${2};

如果您想要“IS”字后的所有内容:

COMMENT .*? IS ([^;]*)

匹配任何非分号的内容(获取第一组,而不是匹配)。