正規表現一致後のテキストの取得
正規表現を効果的に使用する探求の中で、一致したパターンに従ってテキストを抽出するという課題に遭遇しました。 。解決策を詳しく見てみましょう。
元の正規表現パターン「sentence(.*)」は、ほぼ目的を達成しています。ただし、一致した文字列 (「文」) と後続のテキストの両方が無差別にキャプチャされます。これを修正するには、「後読みアサーション」として知られる概念を導入する必要があります。
後読みアサーションの使用
肯定的な後読みアサーション (?<=. ..) は、文字列内の指定された式の直後の特定の位置に一致します。この場合、文字列 "sentence" の直後の位置と一致するようにします:
(?<=sentence).*
このパターンは、「'sentence' の直前の位置以降の 0 個以上の文字と一致する」となります。したがって、目的のテキストが正常に抽出されます。
Java での実装
これを Java で実装するには、コードを次のように変更できます。
Pattern pattern = Pattern.compile("(?<=sentence).*"); Matcher matcher = pattern.matcher("some lame sentence that is awesome"); boolean found = false; while (matcher.find()) { System.out.println("I found the text: " + matcher.group().toString()); found = true; } if (!found) { System.out.println("I didn't find the text"); }
これで、正規表現が入力文字列に適用されると、「sentence」に続くテキストのみが一致して出力されます:
I found the text: that is awesome
以上が後読みアサーションを使用して正規表現一致後にテキストを抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。