Maison développement back-end tutoriel php Explication détaillée des fonctions couramment utilisées dans les expressions régulières PHP

Explication détaillée des fonctions couramment utilisées dans les expressions régulières PHP

Nov 11, 2017 pm 01:16 PM
php 表达式 详解

Dans les articles précédents, nous avons découvert l'utilisation des expressions régulières php et la prise en main. Aujourd'hui, nous allons nous concentrer sur l'introduction des fonctions communes des expressions régulières php, les deux peuvent être utilisées. être utilisé parfaitement lorsqu'il est combiné ! !

1. preg_match()

Prototype de fonction :

int preg_match (string $pattern, string $content [, array $matches])
Copier après la connexion

la fonction preg_match () recherche dans la chaîne $content une expression régulière qui correspond à l'expression régulière donnée par $pattern content . Si $matches est fourni, les résultats correspondants y sont placés. $matches[0] contiendra le texte qui correspond à l'intégralité du modèle, $matches[1] contiendra la première correspondance capturée de l'élément de modèle entre parenthèses, et ainsi de suite. Cette fonction n'effectue qu'une seule correspondance et renvoie finalement le nombre de résultats correspondants de 0 ou 1. Le listing 6.1 montre un exemple de code pour la fonction preg_match().
Code 6.1 Correspondance de date et d'heure
Le code est le suivant :

<?php 
//需要匹配的字符串。date函数返回当前时间 
$content = "Current date and time is ".date("Y-m-d h:i a").", we are learning PHP together."; 
//使用通常的方法匹配时间 
if (preg_match ("//d{4}-/d{2}-/d{2} /d{2}:/d{2} [ap]m/", $content, $m)) 
{ 
echo "匹配的时间是:" .$m[0]. "/n"; 
} 
//由于时间的模式明显,也可以简单的匹配 
if (preg_match ("/([/d-]{10}) ([/d:]{5} [ap]m)/", $content, $m)) 
{ 
echo "当前日期是:" .$m[1]. "/n"; 
echo "当前时间是:" .$m[2]. "/n"; 
} 
?>
Copier après la connexion

Il s'agit d'un simple exemple de correspondance de chaîne de texte dynamique. En supposant que l'heure système actuelle est « 13 h 25 le 17 août 2006 », le contenu suivant sera affiché.
L'heure de correspondance est : 2006-08-17 01:25 pm
La date actuelle est : 2006-08-17
L'heure actuelle est : 01:25 pm

2 . ereg() et eregi()

ereg() est la fonction de correspondance pour les expressions régulières dans la bibliothèque d'extensions POSIX. eregi() est une version ignorant la casse de la fonction ereg(). Les deux ont des fonctions similaires à preg_match, mais la fonction renvoie une valeur booléenne indiquant si la correspondance a réussi ou non. Il convient de noter que le premier paramètre de la fonction de bibliothèque d'extension POSIX accepte une chaîne d'expression régulière, c'est-à-dire qu'aucun délimiteur n'est requis. Par exemple, le listing 6.2 est une méthode pour vérifier la sécurité des noms de fichiers.
Code 6.2 Contrôle de sécurité du nom de fichier
Le code est le suivant :


<?php 
$username = $_SERVER[&#39;REMOTE_USER&#39;]; 
$filename = $_GET[&#39;file&#39;]; 
//对文件名进行过滤,以保证系统安全 
if (!ereg(&#39;^[^./][^/]*$&#39;, $userfile)) 
{ 
die(&#39;这不是一个非法的文件名!&#39;); 
} 
//对用户名进行过滤 
if (!ereg(&#39;^[^./][^/]*$&#39;, $username)) 
{ 
die(&#39;这不是一个无效的用户名&#39;); 
} 
//通过安全过滤,拼合文件路径 
$thefile = "/home/$username/$filename"; 
?>
Copier après la connexion


Normalement , L'utilisation de la fonction de correspondance d'expressions régulières compatible Perl perg_match() sera plus rapide que l'utilisation de ereg() ou eregi(). Si vous souhaitez simplement savoir si une chaîne contient une certaine sous-chaîne, il est recommandé d'utiliser la fonction strstr() ou strpos().

Remplacement des expressions régulières

1. ereg_replace() et eregi_replace()

Prototype de fonction :

string ereg_replace (string $pattern, string $replacement, string $string) 
string eregi_replace (string $pattern, string $replacement, string $string)
Copier après la connexion

ereg_replace() recherche la chaîne de modèle $pattern dans $string et compare les résultats correspondants Remplacé avec $remplacement. Lorsque $pattern contient des unités de motif (ou sous-motifs), les positions dans $replacement telles que "/1" ou "$1" seront remplacées par le contenu correspondant à ces sous-motifs. Et "/0" ou "$0" fait référence au contenu de la chaîne entière correspondante. Il convient de noter que la barre oblique inverse est utilisée comme caractère d'échappement entre guillemets doubles, les formes "//0" et "//1" doivent donc être utilisées.
Les fonctions de eregi_replace() et ereg_replace() sont les mêmes, sauf que la première ignore la casse. Le code 6.6 est un exemple d'application de cette fonction. Ce code montre comment effectuer un travail de nettoyage simple sur le code source du programme.
Code 6.6 Nettoyer le code source
Le code est le suivant :

<?php 
$lines = file(&#39;source.php&#39;); //将文件读入数组中 
for($i=0; $i<count($lines); $i++) 
{ 
//将行末以“//”或“#”开头的注释去掉 
$lines[$i] = eregi_replace("(////|#).*$", "", $lines[$i]); 
//将行末的空白消除 
$lines[$i] = eregi_replace("[ /n/r/t/v/f]*$", "/r/n", $lines[$i]); 
} 
//整理后输出到页面 
echo htmlspecialchars(join("",$lines)); 
?>
Copier après la connexion


2. preg_replace()

Prototype de fonction :

mixed preg_replace (mixed $pattern, mixed $replacement, mixed $subject [, int $limit])
Copier après la connexion

preg_replace est plus puissant que ereg_replace. Les trois premiers paramètres peuvent tous utiliser des tableaux ; le quatrième paramètre $limit peut définir le nombre de remplacements, et la valeur par défaut est de tout remplacer. Le code 6.7 est un exemple d'application de remplacement de tableau.
Code 6.7 Remplacement du tableau
Le code est le suivant :


<?php 
//字符串 
$string = "Name: {Name}<br>/nEmail: {Email}<br>/nAddress: {Address}<br>/n"; 
//模式 
$patterns =array( 
"/{Address}/", 
"/{Name}/", 
"/{Email}/" 
); 
//替换字串 
$replacements = array ( 
"No.5, Wilson St., New York, U.S.A", 
"Thomas Ching", 
"tom@emailaddress.com", 
); 
//输出模式替换结果 
print preg_replace($patterns, $replacements, $string); 
?>
Copier après la connexion

Les résultats de sortie sont les suivants.

Name: Thomas Ching", 
Email: tom@emailaddress.com 
Address: No.5, Wilson St., New York, U.S.A
Copier après la connexion

Le modificateur de motif "e" peut être utilisé dans l'expression régulière de preg_replace. Sa fonction est d'utiliser le résultat correspondant comme expression et peut être réutilisée. Par exemple :
Le code est le suivant :

<?php 
$html_body = “<HTML><Body><H1>TEST</H1>My Picture<Img src=”my.gif”></Body></HTML>”; 
//输出结果中HTML标签将全部为小写字母 
echo preg_replace ( 
"/(<//?)(/w+)([^>]*>)/e", 
"&#39;//1&#39;.strtolower(&#39;//2&#39;).&#39;//3&#39;", //此处的模式变量//2将被strtolower转换为小写字符 
$html_body); 
?>
Copier après la connexion

Résumé :

La fonction preg_replace utilise une expression régulière compatible Perl syntaxe, généralement une alternative plus rapide à ereg_replace. Si vous souhaitez uniquement effectuer un simple remplacement d'une chaîne, vous pouvez utiliser la fonction str_replace.

Recommandations associées :

Explication détaillée de la fonction preg_match_all dans les expressions régulières php


Explication détaillée de la fonction preg_match dans l'expression régulière php


Un cas de vérification d'une adresse e-mail avec une expression régulière php


Exemple d'analyse des expressions régulières php


Introduction détaillée aux expressions régulières php

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

See all articles