正規表現パッケージに制限がある
java.regexパッケージには名前付きグループのサポートがないことは確認済みですので、対応しているサードパーティ製ライブラリを教えてください。
jregexを検討しましたが、最後のリリースは2002年で、java5では機能しませんでした(すぐに試してみましたが)。
Java 7以降のサポート
Java 7では、名前付きグループがサポートされました。名前付きキャプチャグループをサポートするための構成要素は次のとおりです。
Java 7以前の代替案
Java 7以前では、以下の代替案がありました。
Regex2 ライブラリ
Regex2ライブラリは、名前付きグループを作成するためにjava.util.regex.Patternクラスを拡張したものです。
例
入力文字列: "TEST 123"
正規表現: "(?
アクセス:
matcher.group(1) == "TEST"
matcher.group("login") == "TEST"
matcher.name(1) == "login"
置換:
matcher.replaceAll("aaaaa_$1_sssss_$2____") == "aaaaa_TEST_sssss_123____"
matcher.replaceAll("aaaaa_${login}_sssss_${id}____") == "aaaaa_TEST_sssss_123____"
以上がJava 7 より前の Java で名前付きキャプチャ グループを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。