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

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

Barbara Streisand
リリース: 2024-11-08 01:18:03
オリジナル
848 人が閲覧しました

How to Extract Text After a Regex Match Using a Positive Lookbehind Assertion?

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

正規表現 (Regex) の領域では、テキストから特定の情報を抽出するのが難しい場合があります。一般的なタスクの 1 つは、特定の一致に続くテキストを取得することです。この記事では、このプロセスについて説明し、「sentence」文字列の後のテキストを検索するという特定の要件を詳しく説明します。

既存の正規表現パターン「sentence(.*)」は、「sentence」文字列を正常に識別します。 。ただし、一致したテキスト自体もキャプチャされますが、これは望ましい結果ではありません。

目的を達成するには、肯定的な後読みアサーションの利用を検討してください。この機能を使用すると、一致したテキストを実際に結果の一部にすることなく、文字列内の特定の位置と一致させることができます。あなたの場合、「sentence」を含めずに「sentence」の直後の位置と一致させたいと考えています。

次の変更された正規表現パターンはこれを実現します:

(?<=sentence).*
ログイン後にコピー

パターンの内訳:

  • (?<=sentence): この肯定的な後読みアサーションは、文字列 "sentence" の直後の位置と一致します。
  • .*: これは、後読みアサーションに続く任意の数の文字と事実上一致します。 「sentence」の後のテキストをキャプチャします。

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」文字列は含めずに「素晴らしいです」と表示されます。

以上が肯定的な後読みアサーションを使用して正規表現一致後にテキストを抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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