Java Regex キャプチャ グループについて
このコード スニペットでは、Java の正規表現 (regex) ライブラリを使用して文字列の一部を抽出します。正規表現は「(.)(d )(.)」として定義されます。
正規表現の実行
文字列「この注文は QT3000 に対して行われました! OK?」に対して正規表現が実行されると、次の結果が生成されます:
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT Found value: 3000
貪欲な量指定子について
正規表現で使用されるデフォルトの量指定子は貪欲です。これは、次のグループを満たすためにできるだけ多くの文字と一致することを意味します。この場合、「.*」は最初の数字が見つかるまで文字列全体と一致し、3 番目のグループには文字が残りません。
リラクタント量指定子の使用
一致するには必要な文字のみを使用するには、疑問符で示された消極的な数量詞を使用できます。 「(.)」を「(.?)」に置き換えると、可能な最小数の文字に一致し、次の出力が得られます:
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT Found value: 3000
グループをキャプチャする利点
グループをキャプチャすると、一致する文字列の特定の部分を抽出してさらに使用できるようになります。この例では、以下のコード スニペットに示すように、「Matcher」オブジェクトの「group()」メソッドを通じて各グループの一致した値にアクセスできます。
<code class="java">Pattern pattern = Pattern.compile("(.*?)(\d+)(.*)"); Matcher matcher = pattern.matcher(line); if (matcher.find()) { System.out.println("group 1: " + matcher.group(1)); System.out.println("group 2: " + matcher.group(2)); System.out.println("group 3: " + matcher.group(3)); }</code>
以上がJava 正規表現でのグループのキャプチャはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。