Maison > Java > javaDidacticiel > Comment puis-je utiliser Regex en Java pour faire correspondre des modèles uniquement lorsqu'ils ne sont pas précédés de caractères spécifiques ?

Comment puis-je utiliser Regex en Java pour faire correspondre des modèles uniquement lorsqu'ils ne sont pas précédés de caractères spécifiques ?

Patricia Arquette
Libérer: 2024-11-29 22:46:11
original
850 Les gens l'ont consulté

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

Correspondance de modèles non précédés de caractères spécifiques à l'aide de Regex

En Java, les expressions régulières offrent un moyen puissant de faire correspondre des modèles dans des chaînes. Parfois, vous devrez peut-être faire correspondre un motif uniquement s'il n'est pas précédé de certains caractères. En tirant parti du lookbehind négatif, l'expression régulière vous permet d'y parvenir.

Problème :

Considérez la chaîne suivante :

String s = "foobar barbar beachbar crowbar bar ";
Copier après la connexion

Nous souhaitons faire correspondre toutes les occurrences de « bar » qui ne sont pas immédiatement précédées de « foo ». Le résultat souhaité serait :

barbar
beachbar
crowbar
bar
Copier après la connexion

Solution :

Pour accomplir cette tâche, nous pouvons utiliser le modèle d'expression régulière suivant :

\w*(?<!foo)bar
Copier après la connexion

Décomposer le modèle :

  • w* correspond à n'importe quel nombre de caractères de mot (lettres, chiffres ou traits de soulignement) avant la correspondance potentielle. Cette partie capture des caractères comme "plage" dans "beachbar".
  • (?

En utilisant ce modèle, nous pouvons réussir à faire correspondre les occurrences de "bar" qui ne sont pas précédées de "foo". Le résultat reflétera le résultat souhaité.

Remarques supplémentaires :

  • Pour plus d'informations sur le lookbehind négatif des regex, reportez-vous à « Expressions régulières – Lookaround ».
  • La partie w* a été ajoutée plus tard pour capturer les caractères avant le motif (par exemple, « plage » dans "bar de plage").

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal