web-dev-qa-db-ja.com

正規表現:数字で始まらない行を削除する

私はRegExチートシートの助けを借りてこの問題と戦い、これを行う方法を見つけようとしていますが、私はあきらめます...この長いファイルをNotepad ++で開いているので、開始しないすべての行を削除したいと思います数字(0..9)付き。 N ++の検索/置換機能を使用します。使用している正規表現の実装がわからないため、これについてのみ言及しています...ありがとう

例。次のテキストから:

1hello
foo
2world
bar
3!

抽出したい

1hello
2world
3!

ない:

1hello

2world

3!

正規表現で検索/置換を実行します。

13
Peter Perháč

これらの行は^[^0-9].*でクリアできますが、空白行が残ります。

Notepad ++はシンチラを使用し、それらに一致するように正規表現エンジンも使用します。

\ rと\ nが一致することはありません。これは、Scintillaでは、正規表現の検索が1行ごとに行われるためです(行末の文字が削除されます)。

http://www.scintilla.org/SciTERegEx.html

これらの空白行をクリアするには、拡張モードを選択し、\ n\nを\ nに置き換えます。Windowsモードの場合は、\ r\n\r\nを\ r\nに変更します。

23
YOU

[^0-9]は、数字を除くほとんどすべてに一致する正規表現です。 ^[^0-9]と言うと、ほとんどの正規表現システムでは、行の先頭に「アンカー」します。行の残りを含める場合は、^[^0-9].+を使用します。

8
unwind

^[^\d].*は、最初の文字が数字ではない行全体をマークします。数字の前に空白が本当にないかどうかを確認してください。それ以外の場合は、別の式を使用する必要があります。

[〜#〜] update [〜#〜]:2つのステップでotを実行する必要があります。まず、数字で始まらない行を空にします。次に、拡張モードで空の行を削除します。

8
moxn

Notepad ++でブックマークする手法を使用することもできます。私はこの機能の恩恵を受け始めました(長い間存在していましたが、最近UIに表示されるようになりました)。

検索ダイアログを表示し、数字^\D.*$で始まらない行に正規表現を入力して、[すべてマーク]を選択するだけです。これにより、ビー玉のような青い円が左側のガターに配置されます。これらは行のブックマークです。次に、メインメニューから[検索]-> [ブックマーク]-> [ブックマークされた行を削除]を選択します。

ブックマークはかっこいいです。ブックマークした行をコピーすることを選択し、新しいドキュメントを開いてそこに行を貼り付けるだけで、これらの行を抽出できます。ログファイルを確認するときに、この手法を使用することがあります。

3
Peter Perháč

あなたが何を求めているのかわかりません。ただし、先頭に数字が含まれる行を検索するためのregexpは^\d。*になります。上記に一致するすべての行を削除するか、この式に一致するすべての行を保持することができます:^ [^\d]。*

1
codekitty