Maison >Java >javaDidacticiel >Comment puis-je utiliser des expressions régulières Java pour faire correspondre des modèles non précédés de caractères spécifiques ?

Comment puis-je utiliser des expressions régulières Java pour faire correspondre des modèles non précédés de caractères spécifiques ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-08 21:24:22511parcourir

How Can I Use Java Regular Expressions to Match Patterns Not Preceded by Specific Characters?

Modèles de correspondance non précédés de certains caractères avec des expressions régulières

En Java, les expressions régulières offrent de puissantes capacités de correspondance de modèles. Une tâche spécifique consiste à faire correspondre un modèle uniquement lorsqu'il n'est pas précédé de caractères spécifiés.

Pour y parvenir, des recherches négatives peuvent être utilisées. Les recherches négatives utilisent la syntaxe (?

Exemple :

Considérez la chaîne :

String s = "foobar barbar beachbar crowbar bar ";

Pour faire correspondre "bar" uniquement lorsqu'il n'est pas précédé de "foo", utilisez ce qui suit expression régulière :

\w*(?<!foo)bar

Voici comment cela fonctionne :

  • w* : Capture n'importe quel nombre de caractères de mot (alphabets, chiffres ou traits de soulignement) avant "bar."
  • (? Négatif lookbehind qui garantit que les caractères "foo" ne sont pas présents immédiatement avant "bar".

Sortie :

barbar
beachbar
crowbar
bar

Remarque supplémentaire :

Pour capturer des caractères avant « bar » (par exemple, « plage »), ajoutez w* avant de capturer "bar":

\w*(?<!foo)\w*bar

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn