ホームページ > Java > &#&チュートリアル > Java 7 より前の Java で名前付きキャプチャ グループを使用するにはどうすればよいですか?

Java 7 より前の Java で名前付きキャプチャ グループを使用するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-05 06:01:01
オリジナル
632 人が閲覧しました

How can I use named capture groups in Java before Java 7?

Javaでの正規表現による名前付きグループ

正規表現パッケージに制限がある

java.regexパッケージには名前付きグループのサポートがないことは確認済みですので、対応しているサードパーティ製ライブラリを教えてください。

jregexを検討しましたが、最後のリリースは2002年で、java5では機能しませんでした(すぐに試してみましたが)。

Java 7以降のサポート

Java 7では、名前付きグループがサポートされました。名前付きキャプチャグループをサポートするための構成要素は次のとおりです。

  • 名前付きグループ「name」を定義するための「(?capturing text)」
  • 名前付きグループ「name」をバックリファレンスするための「k
  • Matcherの置換文字列でキャプチャされたグループを参照するための「${name}」
  • 指定した「名前付きグループ」によってキャプチャされた入力部分文字列を返すための「Matcher.group(String name)」

Java 7以前の代替案

Java 7以前では、以下の代替案がありました。

  • Google named-regex
  • jregex

Regex2 ライブラリ

Regex2ライブラリは、名前付きグループを作成するためにjava.util.regex.Patternクラスを拡張したものです。

入力文字列: "TEST 123"

正規表現: "(?w ) (?d )"

アクセス:

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート