0

各行にレコードのフィールドが含まれるテキストファイルがあります。各行には、V010 で始まり V999 で終わるフィールド識別子があります。

V056 フィールドを含むすべてのレコードを検索したい (現時点では、プラグインhttp://www.phdesign.com.au/programming/toolbucket-multi-line-search-plugin-for-notepad/を使用して Notepad++ を使用しています) .

複数行の正規表現の設定を開始するにはどうすればよいですか。正規表現の力を理解しようとしていますが、今回は複数行のパターンが難しいです。

私は次のようなことを考えていました:

^V010.+

ドットは改行以外の任意の文字であるため、「\r\n」を追加すると、次のようになります。

^V010.+\r\n

次に、レコード全体を選択したいので、V999 が次の行である場合は V999$ を追加する必要があります。

^V010(.+\r\n)+V999$

ただし、最初の V010 から最後の V999 までが選択されます。1 つのシングル レコードを選択するにはどうすればよいですか。そこから、単一のレコードに V056 フィールドが含まれているかどうかをさらに検索できます。

ファイルの例:

A001
A999
V010 V
V020 XXXXXXXXXXX
V021 XXXXXXXXXXX
V040 XXXXX
....
V200 NL
V999
V010 V
V020 XXXXXXXXXXX
....
V999
Z001
Z999
4

1 に答える 1

1

これはあなたのニーズに合うはずです:

V010((.|\n|\r|\r\n)(?!V999))*?V056(.|\n|\r|\r\n)*?V999デモ

  • (.|\n|\r|\r\n)「任意の文字(改行を含む)」を意味します
  • (?!V999)「その後にない」意味しますV999
  • *?「可能な限り一致する」を意味します(「可能な限り一致*する」を意味します)
于 2013-03-19T16:47:01.490 に答える