数字で始まり(NBSPと1-2のスペースで始まる)一連の "レコード"を持つテキストファイルを解析しようとしていますが、数百文字の文字と数字を含み、改行をスパンしますが、予期せぬもので終わる。レコードの終わりを識別するための唯一の方法は、以下の正規表現で一致させることができる開始マーカー、の次のインスタンスを打つことです。正規表現で分割し、Javaで一致する区切り文字をキャプチャしますか?
\\d{1,4}\\u00A0\\s+
コンテンツ手は予測不可能な改行と、入力されたので、私それらを取り除いた。それは私に文字列を残します。
1 blah blah blah 2 blah blah blah ... 875 blah blah blah
私は記録が終了したことを知っている唯一の方法は、次のレコードのIDを打つことであるので、私は上記の正規表現で分割してみました。これは、ファイルをレコードに正しく分割しますが、レコードIDを省略してキャプチャする必要があります。私はJavaのドキュメントをチェックしましたが、分割される動的な値のキャプチャには何もありません。レコード番号をキャプチャグループにしようとしましたが、そのデータは結果の配列に保持されません。
この質問(Java String Regex split and capture splitted portion)は類似しているようですが、質問者は各テキスト断片の終わりを知っています。一方、私はそれぞれがどこから始まるのか分かっています。
別の方法で分割することはできますが、分割正規表現によるテキストの一致は維持されますか?
おかげ
ああ。非常に素晴らしい。 後継の場合:この分割方法により、分割線ごとに正規表現にマッチした動的区切り文字を保持することができました。 – user2029783