Expressions régulières PHP (PCRE)
Une expression régulière décrit un motif de correspondance de chaîne. Elle peut être utilisée pour vérifier si une chaîne contient une certaine sous-chaîne, remplacer les sous-chaînes correspondantes, ou extraire d'une chaîne les sous-chaînes qui répondent à certaines conditions.
Pour plus de contenu sur les expressions régulières, veuillez consulter notre :Expressions régulières - Tutoriel。
En PHP, les expressions régulières sont principalement utilisées via un ensemble de fonctions intégrées, dont les plus couramment utilisées sont :
preg_match(): Recherche un motif correspondant dans une chaîne et renvoie uniquement la première correspondance.preg_match_all(): Recherche un motif correspondant dans une chaîne et renvoie toutes les correspondances.preg_replace(): Recherche un motif correspondant dans une chaîne, puis le remplace.
fonction preg_match()
La fonction preg_match() est utilisée pour rechercher un motif correspondant dans une chaîne et ne renvoie que la première correspondance.
preg_match(pattern, subject, matches)
Description du paramètre :
- pattern: Le motif d'expression régulière.
- subject: La chaîne à rechercher.
- matches: Paramètre facultatif utilisé pour stocker le résultat de la correspondance.
Exemple
$str = "Hello, World!";
$pattern = "/Hello/";
if (preg_match($pattern, $str, $matches)) {
echo "Match successful!" . PHP_EOL;
print_r($matches);
} else {
echo "No match found!";
}
?>
La sortie du code ci-dessus est :
匹配成功!
Array
(
[0] => Hello
)
fonction preg_match_all()
La fonction preg_match_all() est utilisée pour rechercher un motif correspondant dans une chaîne et renvoie toutes les correspondances.
preg_match_all(pattern, subject, matches)
Description du paramètre :
- Permet de rechercher un motif correspondant dans une chaîne et de renvoyer toutes les correspondances.
pattern: Le motif d'expression régulière.subject: La chaîne dans laquelle effectuer la recherche.matches: Tableau utilisé pour stocker tous les résultats correspondants.
Exemple
$str = "Le chat et le chapeau";
$pattern = "/[aeiou]/";
if (preg_match_all($pattern, $str, $matches)) {
echo "Voyelles correspondantes : " . implode(", ", $matches[0]);
} else {
echo "No match found!";
}
?>
La sortie du code ci-dessus est :
匹配的元音字母: e, a, a, e, a
Fonction preg_replace()
La fonction preg_replace() est utilisée pour rechercher un motif correspondant dans une chaîne, puis le remplacer.
preg_replace(pattern, replacement, subject)
Description du paramètre :
- pattern: Le motif d'expression régulière.
- remplacement : La chaîne de remplacement.
- subject: La chaîne à rechercher.
Exemple
$str = "J'aime PHP";
$pattern = "/PHP/";
$replacement = "EXEMPLE";
$new_str = preg_replace($pattern, $replacement, $str);
echo "Chaîne après remplacement : " . $new_str;
?>
La sortie du code ci-dessus est :
替换后的字符串: I love EXAMPLE
Fonctions PCRE
En PHP, nous pouvons utiliser l'extension PCRE pour faire correspondre des motifs de chaîne.
| Fonction | Description |
|---|---|
| preg_filter | Effectuer une recherche et un remplacement par expression régulière |
| preg_grep | Retourner les entrées du tableau qui correspondent au motif |
| preg_last_error | Renvoie le code d'erreur généré par la dernière exécution d'expression régulière PCRE |
| preg_match_all | Effectue une correspondance globale d'expression régulière |
| preg_match | Effectue une correspondance d'expression régulière |
| preg_quote | Échappe les caractères d'expression régulière |
| preg_replace_callback_array | Effectue une recherche et un remplacement par expression régulière à l'aide d'une fonction de rappel |
| preg_replace_callback | Effectue une recherche et un remplacement par expression régulière à l'aide d'une fonction de rappel |
| preg_replace | Effectuer une recherche et un remplacement par expression régulière |
| preg_split | Diviser une chaîne à l'aide d'une expression régulière |
Constantes PREG
| Constante | Description | Depuis quelle version |
|---|---|---|
PREG_PATTERN_ORDER |
Les résultats sont ordonnés par "pattern", uniquement utilisé pour preg_match_all(), c'est-à-dire, $matches | depuis |
PREG_SET_ORDER |
Les résultats sont ordonnés par "set", uniquement utilisé pour preg_match_all(), c'est-à-dire, $matches | |
PREG_OFFSET_CAPTURE |
VoirPREG_SPLIT_OFFSET_CAPTUREla description de. |
4.3.0 |
PREG_SPLIT_NO_EMPTY |
Ce drapeau indique à preg_split() de ne retourner que les parties non vides. | |
PREG_SPLIT_DELIM_CAPTURE |
Ce drapeau indique à preg_split() de capturer également le contenu correspondant aux expressions entre parenthèses. | 4.0.5 |
PREG_SPLIT_OFFSET_CAPTURE |
Si ce drapeau est défini, le décalage de chaque occurrence de la sous-chaîne correspondante sera également retourné. Notez que cela modifie les valeurs du tableau retourné, où chaque élément est un tableau constitué de la sous-chaîne correspondante comme élément 0 et de son décalage par rapport à la chaîne cible comme élément 1. Ce drapeau ne peut être utilisé qu'avec preg_split(). | 4.3.0 |
PREG_NO_ERROR |
Retourné par preg_last_error() lorsqu'il n'y a pas d'erreur correspondante. | 5.2.0 |
PREG_INTERNAL_ERROR |
Retourné par preg_last_error() lorsqu'il y a une erreur interne de PCRE. | 5.2.0 |
PREG_BACKTRACK_LIMIT_ERROR |
Retourné par preg_last_error() lorsque la limite de retour arrière est dépassée. | 5.2.0 |
PREG_RECURSION_LIMIT_ERROR |
Retourné par preg_last_error() lorsque la limite de récursion est dépassée. | 5.2.0 |
PREG_BAD_UTF8_ERROR |
Retourné par preg_last_error() si la dernière erreur a été causée par des données UTF-8 anormales (disponible uniquement lors de l'exécution d'expressions régulières en mode UTF-8). | 5.2.0 |
PREG_BAD_UTF8_OFFSET_ERROR |
Retourné par preg_last_error() si le décalage ne correspond pas à un code UTF-8 valide (disponible uniquement lors de l'exécution d'expressions régulières en mode UTF-8). | 5.3.0 |
PCRE_VERSION |
Numéro de version et date de publication de PCRE (par exemple, "7.0 18-Dec-2006"). | 5.2.4 |