-2

特定の用語やフレーズを検索するテキストから文を選択するには、正規表現が必要です。結果には、検索用語を含む行と、前後の行が含まれている必要があります。ここでの行の定義は、空行から任意の文字まで何でもかまいません。

たとえば、以下のテキストで「deposition」(大文字と小文字を区別しない) という用語を検索している場合:

12           xxxxxxxxxx.           )
13   ______________________________)
14
15
16
17
18             VIDEOTAPE DEPOSITION OF JOHN
19                    FRIDAY, OCTOBER 30, 2009
20
21
22
23
24   PAGES 1 - 92

これにより、次の結果が返されます。

17
18             VIDEOTAPE DEPOSITION OF JOHN
19                    FRIDAY, OCTOBER 30, 2009
4

2 に答える 2

0

このパターンを試してください:

[^\r\n]*?(?:\r|\n|\r\n)[^\r\n]*?\bDEPOSITION\b[^\r\n]*?(?:\r|\n|\r\n)[^\r\n]*?(?:\r|\n|\r\n)

探している単語をDEPOSITION毎回置き換えます。大文字と小文字を区別しないようにするには、選択した正規表現エンジンで大文字と小文字を区別する必要があります。

これがライブデモです。

于 2013-02-05T13:26:21.163 に答える
0

探しているものの一部を知っている場合は、次を使用できます。

(\n^.+?DEPOSITION.+?$\n.+?\n)

すべてのグループに一致させたい場合は、特定の用語を \S (スペース以外の文字) に置き換えることができます。

(\n^.+?\S.+?$\n.+?\n)

どちらの場合も、「Dot Matches Newline」がオフになっていることを確認することが重要です。上記の \n は改行、.+? 次の文字まで、^ は行頭に一致し、$ は行末に一致します。他の唯一の落とし穴は、行ではなくファイルの先頭と末尾に一致するように ^ と $ を切り替えるためのフラグを持つ Regex インタープリターである可能性があります。これはデフォルトでオフになっているはずですが、確認する価値があります

于 2013-02-05T14:18:14.053 に答える