正規表現一致後のテキストの取得
正規表現 (Regex) の領域では、テキストから特定の情報を抽出するのが難しい場合があります。一般的なタスクの 1 つは、特定の一致に続くテキストを取得することです。この記事では、このプロセスについて説明し、「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 サイトの他の関連記事を参照してください。