ホームページ  >  記事  >  Java  >  後読みアサーションを使用して正規表現一致後にテキストを抽出する方法

後読みアサーションを使用して正規表現一致後にテキストを抽出する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-08 11:31:02354ブラウズ

How to Extract Text After a Regex Match Using Lookbehind Assertions?

正規表現一致後のテキストの取得

正規表現を効果的に使用する探求の中で、一致したパターンに従ってテキストを抽出するという課題に遭遇しました。 。解決策を詳しく見てみましょう。

元の正規表現パターン「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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。