expression régulière php
Cet article présente les expressions régulières en PHP, qui ont une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
1.Lorsque les expressions régulières correspondent à des chaînes, elles suivent les deux principes de base suivants :
Tutoriel sur la syntaxe des expressions régulières (y compris les outils de test en ligne)2
Tutoriel vidéo de démarrage rapide des expressions régulières PHP
1 Le principe le plus à gauche : Les expressions régulières commencent toujours à partir de la chaîne cible. En partant de la position la plus à gauche, la correspondance est effectuée séquentiellement jusqu'à ce que la partie qui répond aux exigences de l'expression soit mise en correspondance, ou jusqu'à ce que la fin de la chaîne cible soit mise en correspondance.
2. Le principe de la plus longue : pour la chaîne cible correspondante, l'expression régulière correspondra toujours à la partie la plus longue qui répond aux exigences de l'expression régulière ; c'est-à-dire le mode gourmand
Et alors ? Pour commencer, commencez par le délimiteur, couramment utilisé include / ; #;, qui est utilisé pour indiquer le début d'une série d'expressions régulières. Par exemple : « /a.*a/ ». Lorsque l'expression contient trop de caractères d'échappement, il est recommandé d'utiliser d'abord #, tel que url ; Les expressions régulières sont assemblées à l'aide d'atomes et de métacaractères de gauche à droite.
Par exemple, 'zxcv', lors de la correspondance, '/.*/', où .* représente zxcv.
$str = 'http://baidu.com'; $pattern = '/http:\/\/.*com/';//需要转义/ preg_match($pattern,$str,$match); var_dump( $match);
$str = 'http://baidu.com'; $pattern = '#http://.*com#';//不需要转义/ preg_match($pattern,$str,$match); var_dump( $match);
• d correspond à un caractère numérique. Équivalent à [0-9].
• D correspond à un caractère non numérique. Équivalent à [^0-9].
• f correspond à un saut de formulaire. Équivalent à x0c et cL.
• n correspond à un caractère de nouvelle ligne. Équivalent à x0a et cJ.
• r correspond à un caractère de retour chariot. Équivalent à x0d et cM.
• s correspond à n'importe quel caractère d'espacement, y compris les espaces, les tabulations, les sauts de formulaire, etc. Équivalent à [fnrtv].
• S correspond à tout caractère autre qu'un espace. Équivalent à [^ fnrtv].
• t correspond à un caractère de tabulation. Équivalent à x09 et cI.
• v correspond à un caractère de tabulation verticale. Équivalent à x0b et cK.
• w correspond à n'importe quel caractère de mot, y compris un trait de soulignement. Équivalent à '[A-Za-z0-9_]'.
• W correspond à n'importe quel caractère autre qu'un mot. Équivalent à « [^A-Za-z0-9_] ».
• xn correspond à n, où n est la valeur d'échappement hexadécimale. La valeur d’échappement hexadécimale doit comporter exactement deux chiffres. Par exemple, « x41 » correspond à « A ». « x041 » est équivalent à « x04 » et « 1 ». Le codage ASCII peut être utilisé dans les expressions régulières.
• nm identifie une valeur d'échappement octale ou une référence arrière. nm est une référence vers l'arrière si nm est précédé d'au moins nm sous-expressions pouvant être obtenues. Si nm est précédé d'au moins n, alors n est une référence vers l'arrière suivie du littéral m. Si aucune des conditions précédentes n'est remplie, alors • nm correspondra à la valeur d'échappement octale nm si n et m sont tous deux des chiffres octaux (0-7).
• nmlSi n est un nombre octal (0-3), et m et l sont tous deux des nombres octaux (0-7), alors correspond à la valeur d'échappement octale nml.
• un Caractère Unicode représenté par un nombre hexadécimal. Par exemple, u00A9 correspond au symbole de droit d'auteur (?).
• . Correspond à n'importe quel caractère sauf "n"
• ^ Correspond au début de la chaîne d’entrée. Dans le champ de caractère [], cela signifie une négation, par exemple « [^w] » est égal à « w » et ^w signifie commencer par un caractère de mot.
• $ Correspond à la position finale de la chaîne d'entrée. Par exemple, « w$ » signifie se terminer par un caractère de mot.
• ? Correspond à la sous-expression précédente zéro fois ou une fois qui équivaut à {0,1}, par exemple, "do(es)?" peut correspondre à "do" ou "does".
• * Correspond à la sous-expression précédente zéro ou plusieurs fois , équivalent à {0,}. Par exemple, zo* correspond à "z", "zo", "zoo".
• + Correspond à la sous-expression précédente une ou plusieurs fois, équivalent à {1,} Par exemple, 'zo+' peut correspondre à "zo" et "zoo".
• {n} n est un entier non négatif, apparié n fois. Par exemple, « o{2} » ne correspond pas à « Bob » ou « Booob », mais il correspond aux deux o de « food ».
• {n,} n est un entier non négatif. Faites correspondre au moins n fois. Par exemple, "o{2,}" ne correspond pas au "o" de "Bob", mais il correspond à tous les o de "foooood". 'o{1,}' équivaut à 'o+'. 'o{0,}' équivaut à 'o*'.
• {n,m} m et n sont tous deux des entiers non négatifs, où n <= m. Faites correspondre au moins n fois et au plus m fois. Par exemple, "o{1,3}" correspondra aux trois premiers o de "fooooood". « o{0,1} » est équivalent à « o ? ». Veuillez noter qu'il ne peut y avoir d'espace entre la virgule et les deux chiffres.
• [] Jeu de caractères (champ de caractères). Correspond à l'un des caractères contenus. Par exemple, « [abc] » correspond à « a » dans « plain ».
• () Faites correspondre le contenu entre () et obtenez cette correspondance. Avec n (n est un entier supérieur à 1), 'http://baidu.com' correspond à 'http://baidu.comhttp',1 si l'expression : '(w+) (:)//.*1' Représente http.
• (?:) correspond mais n'obtient pas le résultat correspondant et ne le stocke pas pour une utilisation ultérieure. Ceci est utile lorsque vous utilisez le caractère « ou » (|) pour combiner des parties d'un motif. Par exemple, « industr(?:y|ies) est une expression plus courte que « industry|industries ». Si l'expression ci-dessus est remplacée par '(?:w+)(:)//.*1', alors 1 est représenté par :
• | x|y,匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。
• [-] 字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。
• (?=pattern)正 向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹 配不需要获取供以后使用。例如,'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹 配的搜索,而不是从包含预查的字符之后开始。
• (?!pattern)负 向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不 需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜 索,而不是从包含预查的字符之后开始
有时候最后定界符会有一个字母,如‘/as.*/i’,那这个i又是什么呢,这就是模式修正符;
i表示在和模式进行匹配进不区分大小写
m将模式视为多行,使用^和$表示任何一行都可以以正则表达式开始或结束
s如果没有使用这个模式修正符号,元字符中的"."默认不能表示换行符号,将字符串视为单行
x表示模式中的空白忽略不计
e正则表达式必须使用在preg_replace替换字符串的函数中时才可以使用(讲这个函数时再说)
A以模式字符串开头,相当于元字符^
Z以模式字符串结尾,相当于元字符$
U正则表达式的特点:就是比较“贪婪”,使用该模式修正符可以取消贪婪模式
例:
$str = 'asddadsdasd'; $pattern = '/a.*d/'; preg_match($pattern,$str,$match); var_dump($match) ;//asddadsdasd; $str = 'asddadsdasd'; $pattern = '/a.*d/U';//$pattern = '/a.*?d/'; preg_match($pattern,$str,$match); var_dump($match) ;//asd
php常用正则函数;
匹配:preg_match()与preg_match_all()
1 preg_match($pattern,$subject,[array &$matches])
2 preg_match_all($pattern,$subject,array &$matches)
1只会匹配一次,2会把所有符合的字符串都匹配出来,并且放置到matches数组中,而且这两个函数都有一个整形的返回 值。1是一维数组,2是二维数组
替换:preg_replace()
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
搜索subject中匹配pattern的部分, 以replacement进行替换。
相关推荐:
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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

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.

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

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,

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

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 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.
