テキストと特定の文字列を別の文字列と一致するまで取得したい。私は 持っている "ドア数:5かくかくしかじかこのドアの後ろに ...2つの特定の文字列の間でテキストを取得する方法
ドア数:このドアの後ろに6 かくかくしかじか" 私はドア数」を取得する必要があります。このドアのblaのblaの後ろ5 BLA ...」
String str = " Door 51 text1 Door 61 text2 Door 10 text3";
Pattern pattern = Pattern.compile("\\s\\bPage\\b\\s\\d+(.*?)\\s\\bPage\\b\\s\\d+");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
は、これは私のコードですが、私はit.Iがドア51テキスト1、テキスト2ドア61、ドア10テキスト3を必要とする実行するとき、私は唯一のテキスト1を取得します。あなたは試合が重なって判明として(.*?)
後の代わりに消費するパターンの先読みを使用する必要が
理由だけではなく、 'Door'は、その後、最初のスペースの後に結果の文字列を分割した場合に文字列を分割しませんか?最初の部分をintに変換します。このようにすると、 '[[61、" text2 "]、[10、" text3 "]]'のようなものになります。正規表現の必要はありません。 – domsson