1

私は、似たようなヘッダーを持つ大量のドキュメントを読み込むプロジェクトに取り組んでいます。ヘッダーは同じ単語で開始および終了しますが、開始と終了の間の単語は異なる場合があります。これらを見つけるために Pattern と Matcher を使用しようとしていますが、問題があります。これが私のコードです:

Pattern docHeader = Pattern.compile("HEADER[ ]*:[.\\n\\t ]*header end");

したがって、ヘッダーはおおよそ次のようになります。

HEADER:

random junk

random junk

header end

Document information start.

バックエンドで時間を節約するために、テキストのスクラブを開始する前に、すべてのヘッダーを削除しようとしています。しかし、それは私のパターンを決して見つけません。提案?

4

2 に答える 2

1

次のパターンを正規表現ソリューションで試すことができます。

Pattern docHeader = Pattern.compile("HEADER.*header end",Pattern.DOTALL);
于 2012-10-01T12:06:38.410 に答える
0

Patternetcを使用して自分を汚すことなく、これを1行で実行できます。

String headlessInput = input.replaceAll("(?s)HEADER.*header end", "");

fyi、正規表現(?s)は、正規表現の残りの部分で「ドットが改行に一致」をオンにします。

于 2012-10-01T12:36:06.320 に答える