正規表現を使用して、1 つの完全な文字列を 2 つ取得しようとしています。http://gskinner.com/RegExr/で正常に動作する正規表現を取得しました
サンプル文字列は次のとおりです。
Regex is fun when it works 99
これが私の正規表現です
(.*)\\s+(\\d+)$
これらは、Java のマッチャー (matches()) とパターンを使用するときに取得するグループです。
1: Regex is fun when it works 99
2: Regex is fun when it works
(RegExr で) 通常の正規表現を使用すると、実際に期待する結果が得られます。
1: Regex is fun when it works
2: 99
Regex を Java に組み込む際に注意する必要のある注意事項はありますか? 特殊文字用に既に \\ があります。使い方にコツがあるのかもしれません。?
サンプル アプリをコピーして貼り付ける場合:
String str = "Regex is fun when it works 33";
String regx = "(.*)\\s+(\\d+)$"
Pattern p = Pattern.compile(regx);
Matcher m = p.matcher(str);
if (m.matches()) {
for (int i = 0; i < m.groupCount(); i++) {
System.out.println(i + ": " + m.group(i));
}
}