ホームページ >Java >&#&チュートリアル >Java で正規表現を使用して、前に特定の文字がない場合にのみパターンに一致させるにはどうすればよいですか?

Java で正規表現を使用して、前に特定の文字がない場合にのみパターンに一致させるにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-29 22:46:11730ブラウズ

How Can I Use Regex in Java to Match Patterns Only When Not Preceded by Specific Characters?

正規表現を使用した特定の文字が前にないパターンの一致

Java では、正規表現を使用して文字列内のパターンを一致させる強力な方法が提供されます。場合によっては、パターンの前に特定の文字がない場合にのみ、パターンを一致させる必要がある場合があります。正規表現を使用すると、負の後読みを活用することでこれを実現できます。

問題:

次の文字列を考えてみましょう:

String s = "foobar barbar beachbar crowbar bar ";

一致させたいと考えています「foo」が直前にないすべての「bar」。望ましい出力は次のようになります:

barbar
beachbar
crowbar
bar

解決策:

このタスクを実行するには、次の正規表現パターンを使用できます:

\w*(?<!foo)bar

パターンの内訳:

  • w* は任意の数の単語文字に一致します(文字、数字、またはアンダースコア) を一致する可能性のあるものの前に追加します。この部分は、「beachbar」の「beach」などの文字をキャプチャします。
  • (?

このパターンを使用すると、「foo」が前にない「bar」の出現を正常に一致させることができます。結果は、目的の出力を反映します。

追加メモ:

  • 正規表現の否定後読みの詳細については、「正規表現 - 後読み」を参照してください。
  • w* 部分は、パターンの前の文字をキャプチャするために後で追加されました (例: "ビーチバー").

以上がJava で正規表現を使用して、前に特定の文字がない場合にのみパターンに一致させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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