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

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

Linda Hamilton
リリース: 2024-11-08 11:31:02
オリジナル
472 人が閲覧しました

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

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