: les expressions régulières sont aussi appelées regex.
Voici la liste des différentes fonctions.
preg_match('masque';'chaîne');
$mon_texte="Le site theprogrammeur est le meilleur site sur la programmation.";
if(preg_match('`theprogrammeur`',$mon_texte)){
echo"ce mot fait partie de la chaîne de caractères";
}
else{
echo"Ce mot ne fait pas partie de la chaîne de caractères";
}
?>
-le mot doit être mis entre "`". Ce caractère se trouve près du "Enter".
-preg_match(); est case sensitive.
<?php
$texte='Le site theprogrammeur est le meilleur site sur la programmation';
if(preg_match('`Theprogrammeur`',$texte){
echo'Ce mot se trouve dans la variable';
}<
else{
echo'Ce mot ne se trouve pas dans la variable';
}
?>
<?php
$texte='Le site theprogrammeur est le meilleur site sur la programmation';
if(preg_match('`Theprogrammeur`i',$texte){
echo"ce mot se trouve dans la variable";
}<
else{
echo"Ce mot ne se trouve pas dans la variable";
}
?>
: le caractère "|" signifie "OU".
Voici un tableau d'explications pour que vous comprenniez mieux.| Chaîne | Regex | Résultat | Commentaire |
| J'adore la programmation HTML | `html` | FAUX | la fonction EST case sensitive |
| J'adore la programmation HTML | `htmlì | VRAI | la fonction N'est PAS case sensitive |
| Mon langage de programmation préféré est le Javascript | langage|javascript | VRAI | un des deux mots se trouve dans la chaîne |
| Vive le site theprogrammeur | `vive|site`i | VRAI | la fonction N'est PAS case sensitive |
| Vive le site theprogrammeur | `programmation|Site` | FAUX | aucun des deux mots ne se trouve dans la variable parce que la fonction EST case sensitive |
| ^ | début de la chaîne |
| $ | fin de la chaîne |
| Chaîne | Regex | Résultat | Commentaire |
| theprogrammeur | `^t` | VRAI | la chaîne commence bien par "t" |
| theprogrammeur | `s$` | FAUX | la chaîne ne se termine pas par "s" |
| Bienvenue sur ce site | `^Be$` | FAUX | la chaîne est différente de "Be" |
| Bienvenue sur ce site | `^Bienvenue sur ce site$` | VRAI | la chaîne est identique |
| ? | 0 ou 1 maximum |
| + | 1 ou plus |
| * | 0, 1 ou plus |
| Chaîne | Regex | Résultat | Commentaire |
| site | `si?te` | VRAI | il y a 0 ou 1 "i" |
| site | `si+te` | VRAI | il y a bien minimum 1 "i" |
| siiite | `si?te` | FAUX | il y a plus d'1 "i" |
| siiite | `si*te` | VRAI | il y a bien 0, 1 ou plus d'1 "i" |
| Chaîne | Regex | Résultat | Commentaire |
| theprogrammeur | `theprogram{2}eur` | VRAI | La lettre est bien présente deux fois |
| theprogrammeur | `theprogram{0,3}eur` | VRAI | La lettre est répetée de 0 à 3 fois |
| theprogrammeur | `theprogram{3,}eur` | FAUX | La lettre n'est pas répetée minimum trois fois |
: le signe ^ placé avant une classe est une inderdiction
Voici quelques exemples, toujours sous forme de tableaux:| Chaîne | Regex | Résultat | Commentaire |
| theprogrammeur | `[a-z]*` | VRAI | la chaine commence bien par une lettre minuscule |
| theprogrammeur | `[A-Z]*` | FAUX | la chaîne ne commence pas par une majuscule |
| theprogrammeur | `[a-z0-9]*` | VRAI | la chaine commence bien par une lettre minuscule ou un chiffre |
| theprogrammeur | `[A-Z]*i` | VRAI | la chaîne commence bien par une lettre |
| [[:alpha:]] | toutes les lettres |
| [[:lower:]] | toutes les lettres minuscules |
| [[:upper:]] | toutes les lettres majuscules |
| [[:allumn:]] | toutes les lettre et les chiffres |
| [[:punct:]] | tout les signes de ponctuation |
| [[:space:]] | tout les espaces |
| [[:blank:]] | tout les espaces et les tablulations |
| [[:graph:]] | tout les caractères affichables et imprimables |
| [[:cntrl:]] | tout les caractères d'échappement |
| [[:xdigit:]] | tout les caractères hexadécimaux |
| [[:print:]] | tout les caractèes imprimables |
: les métacaractères doivent toujours être précédés d'un "\" pour qu'ils soient considérés commes des caractères et pas comme du texte. ([,],!,(,),{,},^,$,?,.,+,*,\,#)
| . | n'importe quel caractère |
| \a | chiffre de 0 à 9 |
| \D | pas de chiffre de 0 à 9 |
| \s | espace |
| \S | pas d'espace |
| \t | tabulation |
| \n | saut de ligne |
| \r | retour de chariot |
$variable = preg_replace('#symbole(.+)symbole#i', '\[symbole\]$0\[/symbole\]', $variable);
$variable = preg_replace('#\[gras\](.+)\[/gras\]#i', '<b>$o</b>', $variable);
:-le symbole "#" à le même effet que "`". Vous pouvez
utiliser celui que vous désirez.
-on utilise "isU" plutôt que "i" car "isU" permet de dire à la fonction de s'arrêter à la première balise [/gras]
qu'elle trouve. En utilisant "i", la fonction aurait tout mis en gras jusqu'à la dernière balise [/gras]
str_replace("mot a remplacer", "remplcement", "chaîne");
str_replace("lentement", "rapidement", "La tortue avance lentement");