コードを書きましたが、正しく動作しません。ここで私のRegEx
、私は入力として持っているものと私が出力として期待しているものを見つけることができます。私は束縛されていないグループを使用しています。なぜなら、私は "Bundle"という言葉を得るまでテキストを読んでいますが、それを捕捉したものには含めたくありません。しかし、私は誤って何をしたのか分かりません。ここでJavaの非キャプチャグループRegEx
Pattern pattern = Pattern.compile(
"((Bundle\\s+Components)|(Included\\s+Components))\\s+(.*?)(?:Bundle)", Pattern.DOTALL);
Matcher matcher = pattern.matcher(tableInformation);
while (matcher.find()) {
String bundleComponents = matcher.group();
System.out.println(bundleComponents);
}
は例です: 例1:
Bundle Components bla blah\blabla?!()\\ANY CHARACTER IS POSSIBLE HERE, EVEN LINEBREAK,blah blah
Bundle Type
例2:私は例のために期待する
Included Components
blah blah, like above,
Bundle Type
出力
は、ここに私のコードです。 1:
Bundle Components bla blah\blabla?!()\\ANY CHARACTER IS POSSIBLE HERE, EVEN LINEBREAK,blah blah
出力2:
Included Components
blah blah, like above,
Exの出力として得られるものは次のとおりです。 2:
Bundle Components bla blah\blabla?!()\\ANY CHARACTER IS POSSIBLE HERE, EVEN LINEBREAK,blah blah
Bundle Type
Exの出力として得られるもの。 2:
Included Components
blah blah, like above,
Bundle Type
これで先読みグループ内のパターンがマッチに含まれていないので、あなたは、肯定先読みでこれを行うことができます