2

SQL罰金からコメント行を削除する正規表現を探しています。すべてのコメントは "COMMENT ON" で始まりますが (明らかに)、複数行になる傾向があります。1 行を削除する式を思いつくことができましたが、複数の行に苦労しています。削除しようとしている典型的なエントリは次のようになります。

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.$$;

したがって、必要なのは、セミコロンが表示されるポイントまで複数の行をたどる正規表現です。

私は、2 行目まで検索し、2 ドル ($$) で停止するこれを思いつきました。昨日正規表現を使い始めたばかりなので、これが完全に間違っている場合はご容赦ください (間違いないと確信しています)。

^COMMENT ([^\n\r]+)[\n\r]([\$;\n\r]+)

MacでGrepオプションを使用してTextWranglerでこれを行っています。

ありがとう!

4

2 に答える 2

0

多分何かのようなCOMMENT\sON.*?\$\$;- エディターを複数の行で一致するように設定できる場合 (通常はsフラグを指定することによって) 動作するはずです。

于 2012-08-08T20:04:03.957 に答える
0

SQL はよくわかりませんが、「$$」の間のコンテンツが必要な場合は、次のようにします。

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

「IS」単語の後のすべてが必要な場合:

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

セミコロン以外のすべてに一致します (一致ではなく、最初のグループを取得します)。

于 2012-08-08T20:07:24.837 に答える