Maison > interface Web > js tutoriel > Explication détaillée des trois modes de régularité (gourmand, réticent et possessif)

Explication détaillée des trois modes de régularité (gourmand, réticent et possessif)

php中世界最好的语言
Libérer: 2018-03-30 11:26:39
original
2501 Les gens l'ont consulté

Cette fois, je vous apporte une explication détaillée des trois modes de régularité (gourmand, réticent et possessif), et les précautions d'utilisation des trois modes de régularité (gourmand, réticent et possessif) Quoi le sont-ils ? Voici des cas réels.

Gourmandise (Gvidité) : Correspondance maximale

X?, X*, X+, X{n,} est la correspondance maximale. Par exemple, si vous souhaitez utiliser "<.+>" pour faire correspondre "aaava abb", le résultat attendu correspond peut-être à "", mais le résultat réel Le résultat correspondra à Allez dans "aava .

En mode Greediness, il essaiera de faire correspondre une plage aussi large que possible jusqu'à ce que tout le contenu corresponde. À ce moment-là, lorsque s'il s'avère que le match ne peut pas réussir, il commencera à rétrécir un peu La plage de correspondance jusqu'à ce que le match soit réussi

String test = "a<tr>aava </tr>abb ";
String reg = "<.+>";
System.out.println(test.replaceAll(reg, "###"));
Copier après la connexion

Sortie : a###abb

Réticent (Paresse) (réticent ) : correspondance minimale
X??, X*?, X+ ?, X{n,}? sont des correspondances minimales. En fait, X{n, m}? n'essayez plus de faire correspondre un plus large éventail de contenus

Sortie : a###aava ###abb
String test = "a<tr>aava </tr>abb ";
String reg = "<.+?>";
System.out.println(test.replaceAll(reg, "###"));
Copier après la connexion

Contrairement à la gourmandise, correspondance en mode réticent Deux fois le contenu

Possessif (possessif) : correspondance exacte

X?+, Match


Le mode possessif a une certaine similitude avec la gourmandise, c'est-à-dire qu'il essaie de faire correspondre la plus grande gamme de contenus jusqu'à la fin du contenu, mais contrairement à la gourmandise, la correspondance complète ne revient plus et essaie de correspondre à une plage plus petite

Sortie : aaava abb
String test = "a<tr>aava </tr>abb ";
String reg = "<.++>";
String test2 = "<tr>";
String reg2 = "<tr>";
System.out.println(test.replaceAll(reg, "###"));
System.out.println(test2.replaceAll(reg2, "###"));
Copier après la connexion

Je crois que vous maîtrisez. la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres sites Web chinois php

Lecture recommandée :

Explication détaillée de l'utilisation régulière. expressions sous Linux


Explication détaillée de l'utilisation des expressions régulières

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal