13

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

例。次のテキストから:

1hello
foo
2world
bar
3!

抽出したい

1hello
2world
3!

いいえ:

1hello

2world

3!

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

4

5 に答える 5

23

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

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

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

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

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

于 2009-12-01T14:07:56.450 に答える
8

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

于 2009-12-01T13:52:26.780 に答える
8

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

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

于 2009-12-01T13:55:07.603 に答える
3

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

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

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

于 2011-11-07T20:13:14.517 に答える
1

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

于 2009-12-01T13:57:19.287 に答える