Maison  >  Article  >  développement back-end  >  Expression régulière PHP en action : faire correspondre les prix

Expression régulière PHP en action : faire correspondre les prix

王林
王林original
2023-06-23 08:07:531609parcourir

Lorsque nous achetons en ligne, nous rencontrons souvent des situations où nous devons filtrer les prix. À l'heure actuelle, nous devons utiliser des expressions régulières pour faire correspondre les prix. Cet article vous apprendra comment utiliser les expressions régulières PHP pour implémenter la fonction de correspondance des prix.

Tout d'abord, nous devons comprendre les caractéristiques du prix que nous voulons égaler. De manière générale, le format de prix est divisé selon les types suivants :

  1. Prix entier, tel que 99 yuans, 1 000 yuans, etc.
  2. Prix avec point décimal, tel que 99,99 yuans, 888,88 yuans, etc.
  3. Prix avec point décimal et unité, par exemple 99,99 yuans/bouteille, 666,66 yuans/pièce, etc.

Ensuite, nous pouvons faire correspondre ces prix grâce à des expressions régulières.

Pour le premier prix entier, nous pouvons utiliser l'expression régulière suivante pour faire correspondre :

preg_match("/d+元/", $str, $match);

où d représente les nombres correspondants, + représente les nombres correspondants une ou plusieurs fois, Yuan signifie correspondant au mot « yuan ». $str est la chaîne à mettre en correspondance, $match est le résultat de la correspondance.

Pour le deuxième type de prix avec un point décimal, nous pouvons utiliser l'expression régulière suivante pour faire correspondre :

preg_match("/d+.d+元/", $str, $match);

Parmi eux, .d+ signifie faire correspondre des points décimaux et des nombres, et il doit être devant Ajoutez d+ pour garantir la correspondance avec les nombres avant la virgule décimale. $str est la chaîne à mettre en correspondance, $match est le résultat de la correspondance.

Pour le troisième type de prix avec virgule décimale et unité, nous pouvons utiliser l'expression régulière suivante pour faire correspondre :

preg_match("/d+.d+元/.*/", $str, $match);

Parmi eux, d+.d+ signifie faire correspondre les nombres avant et après la virgule décimale, / signifie correspondre à une barre oblique, .* signifie correspondre à n'importe quel caractère après la barre oblique. $str est la chaîne à mettre en correspondance, $match est le résultat de la correspondance.

Il convient de noter que dans les applications réelles, nous pouvons rencontrer des situations où le prix du même produit est dans des unités différentes, telles que « 99,99 yuans/bouteille » et « 999,99 yuans/boîte ». À l'heure actuelle, nous pouvons utiliser le symbole "|" dans les expressions régulières pour faire correspondre plusieurs options. Par exemple :

preg_match("/d+.d+元/(瓶|箱)/", $str, $match);

Le symbole "|" indique la sélection d'une correspondance entre "bouteille" et "boîte". $str est la chaîne à mettre en correspondance, $match est le résultat de la correspondance.

En faisant correspondre les expressions régulières ci-dessus, nous pouvons facilement filtrer et extraire les prix.

Enfin, il convient de rappeler que si les expressions régulières sont puissantes, elles sont également complexes et sujettes aux erreurs. Par conséquent, dans l’application réelle, nous devons soigneusement déboguer et tester les expressions régulières pour nous assurer que nous pouvons correspondre avec précision aux résultats dont nous avons besoin.

J'espère que cet article pourra aider tout le monde à mieux maîtriser l'application des expressions régulières PHP, afin que nous puissions trouver facilement les produits que nous aimons lors de nos achats en ligne !

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