Les expressions régulières sont un outil très utile pour les développeurs. Ils permettent de rechercher, d’identifier ou de remplacer un mot, un caractère ou toute chaîne de caractères. Dans ce didacticiel, vous apprendrez à maîtriser les expressions rationnelles PHP et à vous montrer des expressions régulières PHP extrêmement utiles et prêtes à l’emploi que chaque développeur Web devrait avoir dans sa boîte à outils.
Commencez avec les expressions régulières
Pour de nombreux débutants, les expressions régulières semblent difficiles à apprendre et à utiliser. En fait, ils sont beaucoup moins difficiles que vous ne le pensez. Avant de plonger profondément dans les expressions régulières avec du code utile et réutilisable, couvrons brièvement les bases des modèles d’expression régulière PCRE:
Syntaxe des expressions régulières
Une expression régulière (Regex ou Regexp pour faire court) est une chaîne de texte spéciale utilisée pour décrire un modèle de recherche. Un modèle d’expression régulière correspond à une chaîne cible. Le tableau suivant décrit les expressions régulières les plus courantes:
Expression régulière | Correspondra … |
---|---|
toto | La chaîne « foo » |
^ toto | « Foo » au début d’une chaîne |
toto $ | « Foo » à la fin d’une chaîne |
^ toto $ | « Foo » quand il est seul sur une chaîne |
[abc] | a, b ou c |
[a-z] | Toutes les lettres minuscules |
[^A-Z] | Tout caractère qui n’est pas une majuscule |
(gif | jpg) | Correspond à « gif » ou « jpg » |
[a-z]+ | Une ou plusieurs lettres minuscules |
[0-9.-] | N’importe quel nombre, point ou signe moins |
^[a-zA-Z0-9_]{1,} $ | Tout mot composé d’au moins une lettre, un chiffre ou _ |
(([wx]) ([yz]) | wy, wz, xy ou xz |
[^A-Za-z0-9] | Tout symbole (pas un chiffre ou une lettre) |
(([A-Z]{3} |[0-9]{4}) | Correspond à trois lettres ou quatre chiffres |
Fonctions d’expression régulière PHP
PHP a de nombreuses fonctions utiles pour travailler avec des expressions régulières. Voici une feuille de triche rapide des fonctions les plus importantes de regex PHP. N’oubliez pas qu’ils sont tous sensibles à la casse.
Pour plus d’informations sur les fonctions d’expressions régulières PHP natives, consultez Manuel.
une fonction | la description |
---|---|
preg_match () | le preg_match() La fonction recherche dans la chaîne un modèle et renvoie true s’il existe un modèle; false dans le cas contraire. |
preg_match_all () | le preg_match_all() La fonction correspond à toutes les occurrences de modèles dans les chaînes. Utile pour trouver et remplacer. |
preg_replace () | le preg_replace() La fonction fonctionne de la même manière que ereg_replace() sauf que les expressions régulières peuvent être utilisées dans les paramètres d’entrée pour le modèle et la substitution. |
preg_split () | Preg Split (COM)preg_split() ) fonctionne exactement comme ça split() Fonction sauf que les expressions régulières sont acceptées comme paramètres d’entrée. |
preg_grep () | le preg_grep() La fonction recherche tous les éléments de input_array et renvoie tous les éléments qui correspondent au modèle d’expression régulière dans une chaîne. |
preg_ quote () | Citer des caractères avec des expressions régulières |
Vérifier un nom de domaine
Respectez la casse pour vérifier qu’une chaîne est un nom de domaine valide. Ceci est très utile pour la validation Formulaires Web.
$url = "http://komunitasweb.com/"; if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) { echo "Your url is ok."; } else { echo "Wrong url."; }
Illuminez un mot à partir d’un texte
Cette expression régulière très utile trouve un mot spécifique dans une chaîne et l’illumine. Très utile pour les résultats de recherche. N’oubliez pas qu’il est sensible à la casse.
$text = "Sample sentence... regex has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor"; echo preg_replace("/b(regex)b/i", '<span style="background:#5fc9f6">1</span>', $text);
Éclairez les résultats de recherche sur votre blog WordPress
L’extrait de code précédent peut être très pratique pour afficher les résultats de la recherche. Si votre site Web est alimenté par WordPress, voici un extrait de code plus spécifique qui vous permet de trouver du texte dans une balise HTML et de le remplacer par le même texte que vous pourrez mettre en forme ultérieurement à l’aide de CSS.
Ouvrez votre search.php
Classer et trouver le the_title()
Une fonction. Remplacez-le par ce qui suit:
echo $title;
Maintenant, ajoutez ce code juste avant la ligne modifiée:
<?php $title = get_the_title(); $keys= explode(" ",$s); $title = preg_replace('/('.implode('|', $keys) .')/iu', '<strong class="search-excerpt">