1

多くの「テーブルの作成...」および「挿入...」クエリを含む大きなSQLファイルがあります。ここで、ファイルからすべての「挿入」クエリを削除したいと考えています。挿入クエリは次のようになります。

INSERT INTO 'some_table' (col1, col2, col3) values
('val11','val12','val13'),
('val21','val22','val23'),
('val31','val32','val33');

Notepad ++を使用 して、正規表現を使用してこれらすべての「INSERT」クエリを見つけて削除したいと考えています。

正規表現で検索しようとするINSERT INTO((.*\r\n)*)と、最初の INSERT クエリの先頭からファイルの末尾までが選択されます。この reqex ( INSERT INTO((.*\r\n)*);) の後にセミコロンを置くと、何も見つかりませんか? 正規表現検索をセミコロン ( ;) で終了するにはどうすればよいですか?

4

2 に答える 2

3

セミコロンは行末の前にあり、正規表現で必要な場所です。

INSERT INTO(([^;]*\r\n)*(.*;(\r\n|$)))

より信頼性の高いアプローチは次のとおりです。

INSERT INTO[\s\S]*?(?<=;)\s*$

これにより、クエリにセミコロン リテラルを含めることができます。

于 2012-11-29T07:40:53.850 に答える
2
INSERT INTO.*?;

を選択してくださいmatch newline option


あなたはそれを貪欲に一致させていました(.*)...怠惰なquatifier(.*?)を使用してください

の必要はありません\r\n...

于 2012-11-29T07:41:39.430 に答える