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 <h1>hello world</h1>
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!