Maison développement back-end tutoriel php Correspondance d'expressions régulières globales et correspondance d'éléments de tableau en PHP (exemples détaillés)

Correspondance d'expressions régulières globales et correspondance d'éléments de tableau en PHP (exemples détaillés)

Nov 01, 2021 am 11:20 AM
php 正则表达式

Dans l'article précédent, je vous ai présenté "Bases passionnantes des expressions régulières en PHP (explication détaillée avec illustrations)", qui vous a donné une brève introduction à quelques connaissances de base sur les expressions régulières. Cet article continuons à examiner quelques connaissances courantes. fonctions des expressions régulières. J'espère que cela sera utile à tout le monde !

Correspondance d'expressions régulières globales et correspondance d'éléments de tableau en PHP (exemples détaillés)

Dans l'article précédent, nous avons présenté quelques définitions de base des expressions régulières et l'application de base de la fonction preg_match(). L'objectif principal de l'utilisation des expressions régulières est d'utiliser des méthodes simples pour y parvenir. fonctions puissantes. Afin d'être simple, efficace et puissant, les règles des expressions régulières sont compliquées, et il est encore plus difficile de construire des expressions régulières correctes et efficaces, donc utiliser une seule fonction preg_match() n'est pas suffisant. . preg_match() 函数的基础应用,使用正则表达式的主要目的就是为了通过简单的办法来实现强大的功能。为了简单、有效而又不失强大,造成了正则表达式规则的复杂,构建正确、有效的正则表达式更是难度较大,所以只用一个preg_match() 函数不足以应付。

正则表达式是在处理文本数据时的一项重要而复杂的技术。而一些文本编辑器也使用正则表达式实现高级别的“搜索/替换”功能。想要实现更多的功能就需要了解更多的函数,接下来我们就来看一下,正则表达式更多的函数知识吧。

<strong><span style="font-size: 18px;">preg_match_all()</span></strong><strong><span style="font-size: 18px;"></span></strong>函数

之前我们只介绍了preg_match() 函数这一种基础函数,在 PHP 中还有一个和 preg_match() 函数极为类似的函数——preg_match_all(),该函数可以搜索字符串中所有可以和正则表达式匹配的结果。

该函数的语法格式如下:

preg_match_all($pattern, $subject [, &$matches [, $flags = PREG_PATTERN_ORDER [, $offset = 0 ]]])
Copier après la connexion

其中需要注意的是:

$pattern表示要搜索的模式,也就是定义好的正则表达式;$subject表示要搜索的字符串;$matches表示可选参数是个多维数组,用来存放所有匹配的结果, 数组排序通过 $flags 指定;$offset表示可选参数,$offset 用于从目标字符串中指定位置开始搜索,它的单位是字节。

$flags表示可选参数,其中它可以结合下面几个标记使用,

  • <strong>PREG_PATTERN_ORDER</strong>

结果排序为 $matches[0] 保存完整模式的所有匹配,$matches[1] 保存第一个子组的所有匹配,以此类推。

  • <strong>PREG_SET_ORDER</strong>

结果排序为 $matches[0] 包含第一次匹配得到的所有匹配(包含子组), $matches[1] 是包含第二次匹配到的所有匹配(包含子组)的数组,以此类推。

  • <strong>PREG_OFFSET_CAPTURE</strong>

如果这个标记被传递,每个发现的匹配返回时会增加它相对目标字符串的偏移量。注意这会改变 $matches 中的每一个匹配结果字符串元素,使其成为一个第 0 个元素为匹配结果字符串,第 1 个元素为匹配结果字符串在 subject 中的偏移量。

其中不能同时使用 PREG_PATTERN_ORDER PREG_SET_ORDER,preg_match_all() 函数可以返回 $pattern 的匹配次数(可能是 0),如果发生错误则返回 FALSE

接下来我们通过示例来看一下preg_match_all() 函数的应用,匹配一个字符串,示例如下:

<?php
    $subject = "abcdefghijkdefabcedfdefxyzdef";
    $pattern_1 = &#39;/(def)(abc)/&#39;;
    $num_1 = preg_match_all($pattern_1, $subject, $matches_1,PREG_PATTERN_ORDER);
    echo "<pre class="brush:php;toolbar:false">";
    var_dump($matches_1);
    var_dump($num_1);
    $pattern_2 = &#39;/(def)(abc)/&#39;;
    $num_2 = preg_match_all($pattern_2, $subject, $matches_2,PREG_OFFSET_CAPTURE, 3);
    var_dump($matches_2);
    var_dump($num_2);
?>
Copier après la connexion

输出结果:

Correspondance dexpressions régulières globales et correspondance déléments de tableau en PHP (exemples détaillés)

由上述示例中,我们便完成了通过preg_match_all() 函数来匹配一个字符串。通过preg_match_all() 函数的应用,可以完成全局正则表达式匹配。

那接下来那我们看一下怎样完成检测与给定模式匹配的数组元素。这时候就要用到preg_grep() 函数了。

<strong><span style="max-width:90%">preg_grep() </span></strong>Les expressions régulières sont une technique importante et complexe lors du traitement des données textuelles. Certains éditeurs de texte utilisent également des expressions régulières pour implémenter des fonctions de « recherche/remplacement » de haut niveau. Si vous souhaitez implémenter plus de fonctions, vous devez connaître plus de fonctions. Examinons ensuite davantage de connaissances sur les fonctions des expressions régulières. </strong></p>preg_match_all()<p></p><p><br/></p>🎜🎜🎜 function🎜🎜🎜🎜Avant, nous n'avons présenté que la fonction de base de la fonction preg_match() . une fonction en PHP qui est très similaire à la fonction preg_match() - preg_match_all(). Cette fonction peut rechercher tous les résultats dans la chaîne qui peuvent correspondre à l'expression régulière. . 🎜🎜Le format de syntaxe de cette fonction est le suivant : 🎜

preg_grep($pattern, $input [, $flags = 0 ])
Copier après la connexion
🎜Ce qu'il faut noter est : 🎜🎜🎜$pattern représente le modèle à rechercher, qui est une expression régulière définie $subject indique la chaîne à rechercher ; $matches indique que le paramètre facultatif est un tableau multidimensionnel utilisé pour stocker tous les résultats correspondants. Le tri du tableau est spécifié par . $flags ; $offset représente un paramètre facultatif, $offset est utilisé pour lancer la recherche à partir de la position spécifiée dans la chaîne cible, et son unité est l'octet. 🎜🎜$flags représente des paramètres facultatifs, qui peuvent être utilisés en combinaison avec les balises suivantes, 🎜
  • 🎜🎜PREG_PATTERN_ORDER🎜🎜
🎜Les résultats sont triés selon que $matches[0] enregistre toutes les correspondances du modèle complet, $matches[1] enregistre toutes les correspondances du premier sous-groupe, et ainsi de suite. 🎜
  • 🎜🎜PREG_SET_ORDER🎜🎜
🎜Les résultats sont triés en $matches[0] incluant la première Toutes les correspondances (y compris les sous-groupes) obtenues par une correspondance, $matches[1] est un tableau contenant toutes les correspondances (y compris les sous-groupes) obtenues par la deuxième correspondance, et ainsi de suite. 🎜
  • 🎜🎜PREG_OFFSET_CAPTURE🎜🎜
🎜Si cette balise est passée, chacun a trouvé une correspondance est renvoyé avec son décalage par rapport à la chaîne cible augmenté. Notez que cela modifiera chaque élément de chaîne de résultat de correspondance dans $matches afin qu'il devienne une chaîne de résultat de correspondance, le 0ème élément étant la chaîne de résultat de correspondance et le 1er élément étant la chaîne de résultat de correspondance dans le décalage du sujet. . 🎜🎜 PREG_PATTERN_ORDER et PREG_SET_ORDER ne peuvent pas être utilisés en même temps. La fonction preg_match_all() peut renvoyer le nombre de correspondances de $pattern (éventuellement 0 si une erreur se produit). , il renvoie FALSE . 🎜🎜Ensuite, regardons l'application de la fonction preg_match_all() à travers un exemple pour faire correspondre une chaîne. L'exemple est le suivant : 🎜
<?php
    $test_arr = array(
        &#39;PHP中文网&#39;,
        &#39;http://www.php.cn/&#39;,
        &#39;php教程&#39;,
        &#39;abcdefg&#39;
    );
    $preg = &#39;/^[a-z]/&#39;;
    $preg_arr_1 = preg_grep($preg, $test_arr);
    $preg_arr_2 = preg_grep($preg, $test_arr, PREG_GREP_INVERT);
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    var_dump($preg_arr_1);
    var_dump($preg_arr_2);
?>
Copier après la connexion
Copier après la connexion
🎜Résultat de sortie : 🎜🎜Correspondance dexpressions régulières globales et correspondance déléments de tableau en PHP (exemples détaillés)🎜🎜À partir de l'exemple ci-dessus, nous avons terminé la correspondance d'une chaîne via preg_match_all() fonction. La correspondance globale des expressions régulières peut être complétée via l'application de la fonction preg_match_all(). 🎜🎜 Voyons ensuite comment détecter les éléments du tableau qui correspondent à un modèle donné. C'est à ce moment-là que la fonction preg_grep() est utilisée. 🎜🎜🎜🎜preg_grep() 🎜🎜🎜🎜function🎜🎜🎜🎜L'utilisation d'expressions régulières peut non seulement faire correspondre des chaînes, mais également faire correspondre des éléments dans des tableaux. La fonction preg_grep() en PHP peut rechercher tous les éléments d'un tableau et renvoyer un tableau de tous les éléments correspondant à l'expression régulière. Le format de syntaxe de cette fonction est le suivant : 🎜rrreee🎜 Ce qu'il faut noter est : 🎜🎜

$pattern表示要搜索的模式,也就是定义好的正则表达式;$input表示要搜索的数组;$flags表示可选参数,可以设置为 PREG_GREP_INVERT,这时函数会返回数组中与给定模式 $pattern 不匹配的元素组成的数组。perg_grep() 函数将遍历 $input 数组中的每一个元素,让该元素与模式 $pattern 进行匹配,然后将匹配成功或者匹配失败的元素返回。

接下来,我们通过示例来看一下使用 perg_grep() 函数匹配数组中的元素,示例如下:

<?php
    $test_arr = array(
        &#39;PHP中文网&#39;,
        &#39;http://www.php.cn/&#39;,
        &#39;php教程&#39;,
        &#39;abcdefg&#39;
    );
    $preg = &#39;/^[a-z]/&#39;;
    $preg_arr_1 = preg_grep($preg, $test_arr);
    $preg_arr_2 = preg_grep($preg, $test_arr, PREG_GREP_INVERT);
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    var_dump($preg_arr_1);
    var_dump($preg_arr_2);
?>
Copier après la connexion
Copier après la connexion

输出结果:

Correspondance dexpressions régulières globales et correspondance déléments de tableau en PHP (exemples détaillés)

上述示例便是通过preg_grep() 函数匹配数组中的元素。

大家如果感兴趣的话,可以点击《PHP视频教程》、《正则表达式手册》进行更多关于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