Maison  >  Article  >  développement back-end  >  Analyser le modèle de correspondance le plus court dans les expressions régulières

Analyser le modèle de correspondance le plus court dans les expressions régulières

巴扎黑
巴扎黑original
2017-09-21 11:52:101816parcourir

La correspondance la plus courte doit être utilisée : s'il y a un morceau de texte, vous souhaitez uniquement faire correspondre le plus court possible, pas le plus long. L'article suivant vous présente principalement les informations pertinentes sur l'utilisation du modèle de correspondance le plus court dans les expressions régulières. L'introduction de l'article est très détaillée. Les amis dans le besoin peuvent s'y référer.

Préface

Récemment, j'ai voulu utiliser des expressions régulières pour récupérer quelque chose dans une page Web. Le contenu n'était pas compliqué mais de nombreux problèmes sont survenus. . Pas grand chose à dire ci-dessous, jetons un œil à l'introduction détaillée :

Lorsque nous utilisons des expressions régulières pour faire correspondre le début et la fin d'une balise, comme faire correspondre les balises d'ouverture et de fermeture de h1 dans 4a249f0d628e2318394fd9b75b4636b1hello world473f0a7621bec819994bb5020d29372a

Beaucoup de gens peuvent écrire comme ça


/<.*h1>/g

Mais est-ce vraiment bien ?

Parce que le caractère * correspondant correspond à zéro ou plusieurs du caractère précédent, et qu'il s'agit d'une correspondance gourmande

, vous obtiendrez donc le résultat suivant.


Évidemment, ce n'est pas ce que nous voulons, alors comment changer la correspondance gourmande en correspondance minimale,


/<.*?h1>/g

La méthode d'écriture ci-dessus suffit, comme indiqué ci-dessous :


En fait, le principe devrait être très simple, car ? , et ne peut correspondre qu'à 0 à 1,

, il se terminera donc lorsqu'il correspondra au premier, empêchant ainsi l'avidité de * de correspondre à plusieurs.

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