687 Shares 2567 views

Expression régulière (PHP). PHP: les expressions régulières exemples

Dans la mesure où le monde de l'information est vaste et diversifié, il se développe si rapidement et en développement. Toute solution est juste un moment dans le processus général de mouvement. La connaissance et l'expérience permettent de comprendre le processus d'atteinte de l'objectif, mais jamais – pas le résultat de sa réalisation. Il est douteux que, dans un avenir prévisible, il est généralement possible de parler du résultat, mais il est très important que le processus de lutte pour cela soit un processus essentiel et objectivement nécessaire.

«Désir et / ou beaucoup d'argent» ne crée pas un algorithme capable de ce que la personne fait de manière naturelle et «gratuite», surtout quand il ne pense pas à ce qu'il fait. Dans n'importe quelle position du problème d'information, il y a au moins une tache blanche, mais derrière elle, habituellement immédiatement, d'autres taches vierges sont visibles, et ce n'est pas nécessaire qu'elles soient toutes blanches.

Les technologies Internet ont considérablement simplifié l'accès à l'information, mais la question de savoir comment imposer le souhaité n'a pas été simplifiée, mais a acquis de nouveaux «volumes» de travail. Et bien que dans les expressions régulières de PHP, l' écart ne soit manifestement pas épuisé, ils constituent un pas en avant significatif.

Fonctions simples + algorithme = modèle

En proposant des expressions régulières, PHP réduit considérablement le contenu de l'algorithme, mais les fonctions de recherche / remplacement habituelles et les algorithmes de traitement trouvés n'ont pas perdu leur valeur. Les nouvelles idées ne prévoient pas la révolution de l'information. Le maximum sur lequel vous pouvez compter est un code compact et la capacité du développeur à formuler correctement une requête de recherche.

Vous devez connaître et appliquer des expressions régulières à PHP. Les exemples sont convaincants et efficaces. Mais il convient de signaler que, avec l'avènement du nouveau moteur de recherche, le centre de gravité s'est déplacé vers un modèle – une sorte de mécanisme, bien qu'il remplisse de nombreuses fonctions, conditions, cycles et autres opérateurs de recherche simples.

Ont:

  • Un outil de qualité et moderne est bon;
  • Voir et utiliser l'expérience des collègues est important;
  • Pour combiner réalité réelle et idées virtuelles – une garantie de succès.

La réalisation de la connaissance, car il était nécessaire de comprendre le problème pour le résoudre, a souvent plus de signification qu'un résultat concret.

Les expressions régulières en PHP sont représentées par plusieurs fonctions de la syntaxe de la langue et de nombreux exemples utiles sur Internet. En raison des spécificités de la syntaxe de la langue, les options de l'application sont limitées uniquement par l'imagination du développeur, mais il convient de noter que tous les modèles ne fonctionneront pas. Avec PHP, vérifier les expressions régulières est essentiel.

Recherche simple d'un caractère (chaîne)

Un symbole n'est pas toujours un octet, et souvent un caractère, en tant que signal élémentaire, comporte également une signification exacte. L'encodage définit les caractères visibles dans le code de différentes façons. Le symbole peut avoir plusieurs options: "$" = "USD" = "cu", … est la signification exacte que quelque part quelque part, mais pas nécessairement à proximité, est liée à la monnaie. Cependant, la signification exacte peut également se situer dans la variable PHP, qui commence toujours avec le symbole "$", mais ne peut pas commencer par "USD" et "cu".

Dans les programmes, le symbole peut être le nom d'une fonction (chaîne) dans le contexte: reconnaître et exécuter est issu de la zone de la programmation orientée objet dynamique, où les constructions, les fonctions, les expressions régulières PHP sont utilisées directement pour la prise de décision. Le symbole trouvé est «exécuté», c'est-à-dire qu'il détermine par lui-même ce qu'il faut faire dans l'endroit où il se trouve, et comment il «le juge» nécessaire.

Rechercher simplement un caractère / une chaîne n'est pas une occupation si simple, et plus l'information se trouve dans un symbole, mieux vaut. Ne devez pas toujours trouver une douzaine de meilleurs prix alimentaires, choisir de délicieuses recettes pour un gâteau de vacances ou décider d'un entrepreneur pour un plafond suspendu.

Souvent, il est nécessaire d'optimiser des algorithmes simples avec une arithmétique d'information non simple ou dans des conditions difficiles, lorsque le symbole désiré doit être sélectionné à partir de la base de données et la ligne dans laquelle il doit être trouvé – sur une centaine de sites. Dans ce cas, le prix du choix d'un symbole est égal au temps d'échantillonnage de la base de données, et le prix d'où chercher est le temps de recherche des centaines de sites notoires.

Un symbole isolé n'est pas une phrase ou quelques phrases, il peut être n'importe où et être aussi petit que vous le souhaitez. Comment déterminer ce que l'on retrouve exactement est ce que vous recherchez?

Exemple: recherche de prix

Trouvez simplement le symbole "$" dans le texte. Un peu. Vérifiez qu'il y a une figure avant, elle n'est pas toujours suffisante. Si vous fournissez un point ou un chiffre avant le symbole "$", il est garanti que les prix, dans lesquels les symboles de l'argent sont en avant, ne seront pas pris en compte. Les prix seront également manqués, dans lequel la devise n'est pas indiquée du tout, mais il existe une indication explicite sur la page.

En général, la solution du problème de la manière habituelle gonfle l'algorithme au-delà de la reconnaissance et prendra beaucoup de temps. Pendant ce temps, en utilisant une expression régulière, le nombre de PHP ne rencontrera aucun problème.

$ CContents = preg_match_all ("/ [0-9] + ([ $] | usd | у . E . | Уе) {1} / i";

"Regardez le courrier électronique – 2usd;
";
"Trouver un e-mail – 2e,
";
"E-mail de travail – ε2;
";
"Vérifiez le courrier électronique – 13 $", $ aResult);
. '; '. Implode (',', $ aResult [0]). '
'.

La réponse est: "2; 2usd, 2u.e.", mais ne trouve rien dans la ligne: "vérifier le courrier électronique – $ 13".

Dans le cas où le modèle comporte la présence d'un symbole en avant ou en arrière, vous pouvez rapidement atteindre l'objectif dans la grande majorité des cas.

$ CContents = preg_match_all ("/ ([0-9] + ([ $] | usd | у . E . | Уе) {1}) | (([$] | usd | у .et . | Ye) {1} [0-9] +) / i ";
"Regardez le courrier électronique – 2usd;
";
"Trouver un e-mail – 2e,
";
"E-mail de travail – ε2;
";
"Vérifiez le courrier électronique – 13 $", $ aResult);
. '; '. Implode (',', $ aResult [0]). '
'.

Le résultat: "4; 2usd, 2u.e. ye2, $ 13".

À propos de la logique involontaire

Expressions régulières L'offre PHP, comme d'autres outils, mais il n'est pas nécessaire de les utiliser selon ses règles ou d'utiliser d'autres fonctions de ligne fournies par la syntaxe.

Vous pouvez transformer la chaîne de recherche en un tableau avant de lancer la recherche, et la décomposer en composants par un critère préliminaire. Une simple paire de fonctions Explode () et implode () simplifie et accélère souvent la solution.

Par exemple, à la suite d'un travail préliminaire, un ensemble de lignes (données) a été formé autour du district sur le nombre de villages que chaque village a recueillis: le Nom du Village et le montant collecté, et s'il existe plusieurs entreprises dans le village, le Nom de la Forêt va à la chaîne du tableau. Le nom de l'Entreprise et la valeur par "; " Et ainsi de suite, toutes les entreprises. Il n'est pas possible de calculer le montant total collecté dans cette affaire, mais si vous faites impode (";", $ aResult), il y aura une longue ligne dans laquelle les paires – Arborescence Nom / Arbre Nom. Le nom de l'Entreprise – le volume collecté – sera répertorié par ";". Après avoir fait l'inverse sur le reçu, explose (";", $ aResult) – un ensemble de tous ceux qui ont collecté et combien il a collecté, puis, en supprimant tous les caractères non numériques des lignes, nous n'avons que les chiffres, dont la somme est le volume total des collectés.

Dans cet exemple, les expressions régulières en PHP vous permettent de ne pas rechercher de façon inutile, elles extraient simplement et facilement les valeurs numériques souhaitées. Rapidement et efficacement, peu importe la durée des noms des villages et des entreprises. Cette décision n'est pas idéale, mais elle montre qu'il n'est pas toujours nécessaire de respecter les règles. Il est souvent possible d'obtenir le désir d'une manière inhabituelle.

Résumé du côté technique, du codage

La syntaxe de l'algorithme ne dit pas comment il ressemble réellement. Mais, en fournissant le même codage de la page, du script et des lignes (qui est recherché et dans lequel la recherche est effectuée), vous pouvez vous immerger dans la tâche en dehors de son côté technique.

Il faut non seulement savoir ce qu'il faut rechercher, mais aussi où le faire, quand, en quelle quantité, quoi changer et comment. Formalement, les expressions régulières de PHP sont exécutées comme un mécanisme complet, complet et entièrement fonctionnel, mais pour de nombreuses raisons, la mise en œuvre de ses homologues dans différentes langues est différente. En règle générale, avant de pouvoir transférer un modèle vers un ou plusieurs environnements d'outils pour une tâche particulière, vous devez effectuer une adaptation qualitative, effectuer une vérification de toutes les variantes possibles des données d'origine.

Même si vous utilisez votre propre expérience de développement PHP, les expressions régulières, les exemples, les modèles et les constructions nécessitent des tests attentifs. Le langage fonctionnel, sa syntaxe et l'environnement d'exécution changent dynamiquement.

Structure et contenu du modèle

Ce qui a déjà été écrit sous la forme d'une combinaison de fonctions de recherche, d' opérateurs conditionnels, d' opérations de remplacement, d'insertion, de suppression, est une seule chaîne de caractères selon certaines règles – un motif d'expression régulier. En fait, un volume significatif est codé d'une manière strictement définie et est exécuté selon des règles spécifiques.

Tout comme vous ne pouvez pas déboguer n'importe quelle déclaration de langue, vous ne pouvez pas déboguer un modèle d'expression régulière, ce processus ne peut être émulé. En règle générale, la variante est acceptée: cela fonctionne – cela ne fonctionne pas. La syntaxe est très simple, bien que sa perception, surtout au début du travail, soit très difficile.

Exemple d'expression simple

Dans une version simple, le motif correspond à la ligne:

$ CContents = preg_match ("/ asdf / i", "asdf", $ aResult). '; '. Implode (',', $ aResult).

Le résultat est "1; asdf", car la fonction finit ses travaux sur la première correspondance du motif. Le résultat sera le même si vous regardez dans la ligne "aaaasdf" et dans la ligne "zzzasdfvvv". Si vous spécifiez le premier et / ou dernier caractère, le résultat sera sans ambiguïté:

$ CContents = preg_match ("/ ^ asdf / i", "asdf", $ aResult). '; '. Implode (',', $ aResult). '
';
$ CContents. = Preg_match ("/ asdf $ /", "asdf", $ aResult). '; '. Implode (',', $ aResult). '
'.

Le résultat sera: 1; Asdf1; Asdf.

Les caractères "^" et "$" indiquent où le modèle commence et comment il se termine. Le résultat de la fonction preg_match est le nombre de correspondances, il peut être 0, 1 ou false si une erreur est détectée. Le troisième paramètre est un tableau – le seul élément trouvé est situé. Si vous utilisez la fonction preg_match_all (), la recherche continue jusqu'à la fin de la ligne.

$ CContents = preg_match ("/ asdf / i", "asdf123asdf456asdf789", $ aResult). '; '. Implode (',', $ aResult). '
';
$ CContents. = Preg_match_all ("/ asdf / i", "asdf123asdf456asdf789", $ aResult). '; '. Implode (',', $ aResult [0]). '
'.

Résultat:

1; Asdf
3; Asdf, asdf, asdf.

Si vous n'utilisez pas d'instructions spéciales, chaque personnage se définit et à sa place, quel que soit le codage de la chaîne et le codage du modèle. Le programmeur est obligé de veiller à ce que les encodages de ces éléments soient corrects l'un par rapport à l'autre et le codage de la page.

Fonctions PHP pour travailler avec des expressions régulières

Les expressions régulières en PHP sont des chaînes de caractères écrites d'une certaine manière. Habituellement, par analogie avec d'autres langages de programmation, ils sont écrits dans les caractères "/" … "/" et placés entre guillemets, selon l'algorithme que vous pouvez utiliser simple ou double.

La fonction principale des expressions régulières de correspondance php preg utilise comme une correspondance de motif et s'arrête lorsqu'elle la trouve d'abord, sa variante avec le suffixe _all supporte toutes les correspondances et renvoie un tableau de celles-ci. La fonction de pré-remplissage remplace chaque combinaison de motif correspondante, elle peut fonctionner avec des tableaux, vous permettant de concevoir une recherche et de remplacer une variété d'options.

Des options intéressantes pour travailler avec des expressions régulières peuvent être développées à l'aide de la fonction preg_replace_callback, qui ne nécessite aucun texte à remplacer, mais le nom de la fonction qui effectuera un tel remplacement. En plus de la valeur pratique, vous pouvez implémenter des mécanismes de validation de modèles, qui jouent un rôle important dans le développement et le débogage de ce dernier.

La portée des expressions régulières

Étant donné que les langues hypertextes sont des informations formalisées, elles sont plus un matériau source. Un grand nombre de modèles et de modèles ont été développés pour gérer efficacement de grandes quantités d'informations. Une partie importante de ce travail se fait par des mécanismes intégrés dans différents systèmes de gestion de contenu (CMS).

Il n'est pas surprenant que de nombreux CMS soient devenus des normes de facto pour la création de sites Web et, accompagnés de sociétés de développement (mises à jour), ils n'ont pas besoin de développer eux-mêmes des modèles. Cependant, en dehors de ces systèmes, avoir de l'expérience avec des expressions régulières est très utile.

Expressions régulières et informations réelles

Un domaine d'application important des expressions régulières en PHP est formé par l'apparition de bibliothèques PHPOffice. Travailler avec des documents et des feuilles de calcul a toujours été et est important, et la norme OOXML permet non seulement de démonter les documents réels, mais aussi de les former par programme.

Grâce au développement d'Hypertext et de PHP en particulier, il existe une véritable opportunité d'automatiser la «production» des documents «standard», par exemple, des factures de paiement, des rapports, des plans d'affaires et d'autres objets d'information dont la structure et le contenu peuvent être formalisés et automatisés.

En relation avec l'application pour la description de la langue OOXML, le processus de développement d'expressions régulières a des différences importantes par rapport au travail traditionnel avec les langages de balisage HTML et CSS en premier lieu. Un document réel, outre le balisage et en plus du contenu réel lui-même, a beaucoup de détails. Par exemple, un document créé automatiquement par le programme aura un contenu strict et précis. Un document formé par une personne ou traité par elle aura un contenu écrit sur un ensemble de tags. Tout travail avec le document conduit au fait que la sémantique de celui-ci peut en rester un, mais peint à l'intérieur par un nombre différent de dessins différents.

Informations et situation naturelles

Une personne est toujours intéressée par la solution d'un problème, dont l'information est l'information et, par conséquent, des informations seront également fournies. Après avoir présenté la déclaration du problème sous la forme d'un document, une personne reçoit une certaine sémantique, qui, lors de la spécification par des spécialistes (modification, clarification du libellé, suppression, édition), conduit non seulement aux nombreuses variantes d'un document, mais aussi aux versions avec du contenu différent.

En particulier, la tâche posée par l'expression "Résoudre l'échappement quadratique", après l'édition ne ressemblera pas à ceci: "Résolvez l'équation quadratique". Si la première erreur a été corrigée en premier, puis la seconde, les informations naturelles du style OOXML peuvent ressembler à: "[Résolu] [] [carrément] [e] [] [hurray] [dans] [nenia]", mais ce n'est pas Assurez-vous que c'est la manière dont la tâche sera affichée dans les balises OOXML (les crochets imitent les parenthèses des balises).

Vous pouvez collecter des informations facilement après chaque processus d'édition de tâches, mais chaque fois que cette procédure sera effectuée selon un algorithme différent. Les expressions régulières, en tant qu'outil d'outil de formalisation des tâches d'information, sont devenues, en fait, un chemin entre les structures formelles d'hypertexte et l'information naturelle.