Maison  >  Article  >  développement back-end  >  Explication détaillée des expressions régulières les plus couramment utilisées en PHP

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

黄舟
黄舟original
2017-03-30 17:53:524233parcourir

Cet article organisera et présentera les expressions régulières les plus couramment utilisées en PHP. Il a une très bonne valeur de référence, regardons-le avec l'éditeur ci-dessous

1 Expression des numéros de chèque

Numéro : ^[0-9] *$

Numéro à N chiffres : ^d{n}$

Numéro à au moins n chiffres : ^d{n,}$

Nombre à m-n chiffres : ^ d{m,n}$

Nombres commençant par zéro et non nul : ^(0|[1-9][0-9]*)$

Nombres commençant par non -zéro au plus Nombre avec deux décimales : ^([1-9][0-9]*) (.[0-9]{1,2})?$

Nombre positif avec 1- 2 décimales Ou nombres négatifs : ^(-)?d (.d{1,2})?$

Nombres positifs, nombres négatifs et décimales : ^(-| )?d (.d ) ?$

Nombre réel positif avec deux décimales : ^[0-9] (.[0-9]{2})?$

Nombre réel positif avec 1~3 décimales : ^[0- 9] (.[0-9]{1,3})?$

entier positif non nul : ^[1-9]d*$ ou ^([1-9 ][0-9 ]*){1,3}$ ou ^ ?[1-9][0-9]*$

Entier négatif non nul : ^-[1-9][] 0-9″* $ ou ^-[1-9]d*$

entier non négatif : ^d $ ou ^[1-9]d*|0$

non -entier positif : ^-[ 1-9]d*|0$ ou ^((-d )|(0 ))$

Nombre à virgule flottante non négatif : ^d (.d )?$ ou ^[1-9]d* .d*|0.d*[1-9]d*|0?.0 |0$

Nombre à virgule flottante non positif : ^((-d (.d )?)|(0 (. 0 )?))$ ou ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?. 0 |0$

Nombre à virgule flottante positif : ^[1-9]d*.d*|0.d*[1-9]d*$ ou ^(([0-9] .[ 0-9]*[1-9][0 -9]*)|([0-9]*[1-9][0-9]*.[0-9] )|([0-9] *[1-9][0-9]* ))$

Nombre à virgule flottante négatif : ^-([1-9]d*.d*|0.d*[1-9]d *)$ ou ^(-(([0-9 ] .[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9 ]*.[0-9] )|([0 -9]*[1-9][0-9]*)))$

Nombre à virgule flottante : ^(-?d )(. d )?$ ou ^-?([1-9] d*.d*|0.d*[1-9]d*|0?.0 |0)$

2 . Expression des caractères de contrôle

Caractères chinois : ^[u4e00-u9fa5]{0,}$

Anglais et chiffres : ^[A-Za-z0-9] $ ou ^[A-Za-z0-9]{4, 40}$

Tous les caractères de longueur 3 à 20 : ^.{3,20}$

Une chaîne composée de 26 anglais lettres : ^[A-Za-z] $

Une chaîne composée de 26 lettres anglaises majuscules : ^[A-Z] $

Une chaîne composée de 26 lettres anglaises minuscules : ^[a-z] $

Une chaîne composée de chiffres et de 26 lettres anglaises : ^[A-Za-z0-9] $

Une chaîne composée de chiffres, de 26 lettres anglaises ou de traits de soulignement : ^w $ ou ^w {3,20}$

Chinois, anglais, chiffres incluant les traits de soulignement : ^[u4E00-u9FA5A-Za-z0-9_] $

Chinois, anglais, chiffres mais hors traits de soulignement et autres symboles : ^[u4E00-u9FA5A-Za-z0-9] $ ou ^[u4E00-u9FA5A-Za-z0-9]{2,20}$

peuvent être saisis contenant ^%&', ;=? $" et autres caractères : [^%&',;=?$x22]

Il est interdit de saisir des caractères contenant ~ : [^~x22]

3. Expressions pour besoins particuliers

Adresse email : ^w ([- .]w )*@w ([-.]w )*.w ([-.]w )*$

Nom de domaine :[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA- Z0-9]{0, 62}) /.?

URLInternet : [a-zA-z] ://[^s]* ou ^http://([w-] .) [ w-] (/[w -./?%&=]*)?$

Numéro de téléphone portable : ^(13[0-9]|14[5|7]|15[0|1 |2|3|5|6 |7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$

Numéro de téléphone (« XXX-XXXXXXX », « XXXX-XXXXXXXX », « XXX-XXXXXXX », « XXX-XXXXXXXX », « XXXXXXX » et « XXXXXXXXX ») : ^($$d{3,4}-)|d{3.4 }-)?d{7,8 }$

Numéro de téléphone national (0511-4405222, 021-87888822) : d{3}-d{8}|d{4}-d{7}

Numéro d'identification (15 chiffres, 18 chiffres) : ^d{15}|d{18}$

Numéro d'identification court (chiffres, lettres se terminant par x) : ^([0-9 ]){7,18} (x| Début, 5 à 16 octets autorisés, traits de soulignement alphanumériques autorisés) : ^[a-zA-Z][a-zA-Z0-9_]{4,15}$

Mot de passe (commence par une lettre, La longueur est comprise entre 6 et 18 et ne peut contenir que des lettres, des chiffres et des traits de soulignement) : ^[a-zA-Z]w{5,17}$

Fort mot de passe (doit contenir des lettres et des chiffres majuscules et minuscules) Combinaison, les caractères spéciaux ne peuvent pas être utilisés, la longueur est comprise entre 8 et 10 : ^(?=.*d)(?=.*[a-z])(?=.*[ A-Z]).{8,10}$

Format de date : ^d{4}-d{1,2}-d{1,2}

12 mois de l'année ( 01~09 et 1~12) : ^ (0?[1-9]|1[0-2])$

31 jours d'un mois (01~09 et 1~31) : ^( (0?[1-9])| ((1|2)[0-9])|30|31)$

Format de saisie d'argent :

    Il existe quatre types. Nous pouvons accepter les expressions d'argent : "10 000,00" et "10 000,00", et "10 000" et "10 000" sans "cent": ^[1-9][0-9] *$
  • Cela signifie tout nombre qui ne commence pas par 0. Cependant, cela signifie également qu'un caractère "0" n'est pas passé, nous utilisons donc la forme suivante : ^(0 |[1-9][0-9 ]*)$
  • Un 0 ou un nombre qui ne commence pas par 0. On peut aussi autoriser un signe négatif au début : ^ (0|-?[1-9][0 -9]*)$
  • Cela signifie un 0 ou un nombre qui peut être négatif et ne commence pas par 0. Laissez le l'utilisateur commence par 0. Supprimez également le signe négatif, car l'argent ne peut pas être négatif. Ce que nous devons ajouter ci-dessous est la partie décimale possible : ^[0-9] (.[0-9])?$
  • .

  • Doit L'explication est qu'il doit y avoir au moins 1 chiffre après la virgule, donc "10" n'est pas passé, mais "10" et "10.2" sont passés : ^[0-". 9] (.[0-9]{2 })?$
  • De cette façon, nous stipulons qu'il doit y avoir deux décimales après la virgule si vous pensez que c'est trop. dur, vous pouvez faire ceci : ^[0-9] (.[0-9]{ 1,2})?$
  • Cela permet à l'utilisateur d'écrire une seule décimale. Ensuite, nous devrions considérer les virgules dans les nombres. Nous pouvons faire ceci : ^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2}) ? $

  • 1 à 3 chiffres, suivis d'un nombre quelconque de virgules et de 3 chiffres. Les virgules deviennent facultatives au lieu d'être obligatoires : ^([0-9] |[0-9 ]{ 1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$

  • Remarque : Ceci est la version finale le résultat est ici, n'oubliez pas que « » peut être remplacé par « * ». Si vous pensez que les chaînes vides sont acceptables (étrange, pourquoi ?) Enfin, n'oubliez pas de supprimer la barre oblique inverse lors de l'utilisation des fonctions. Les erreurs courantes sont ici

fichier XML : ^([a. -zA-Z] -?) [a-zA-Z0-9] \.[x|X][m|M][l|L]$

Caractères chinois Expression régulière : [u4e00-u9fa5 ]

Caractères à deux octets : [^x00-xff] (y compris les caractères chinois, peuvent être utilisés pour calculer la longueur de la chaîne (la longueur d'un caractère à deux octets est de 2, les caractères ASCII comptent 1) )

Expression régulière pour les lignes vides : ns*r (peut être utilisée pour supprimer les lignes vides)

Expression régulière pour les balises HTML : <(S*? )(^>]* >.*?|<.*? /> (La version qui circule sur Internet est dommage, celle ci-dessus ne peut fonctionner que partiellement, et elle est encore impuissante pour les balises imbriquées complexes)

Expression régulière pour les caractères d'espacement au début et à la fin de la ligne : ^s*|s*$ ou (^s*)|(s*$) (peut être utilisée pour supprimer les caractères d'espacement au début et à la fin de la ligne (y compris les espaces, les caractères de tableau, les sauts de page, etc.), expressions très utiles)

Numéro Tencent QQ : [1-9][0-9]{4,} (Le numéro Tencent QQ commence à partir de 10000)

Code postal chinois : [1-9]d{5}(?!d) (le code postal chinois est composé de 6 chiffres)

Adresse IP : d .d .d . d (extrait IP Utile pour les adresses)

Ce qui précède est l'explication détaillée des expressions régulières les plus couramment utilisées en PHP. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com). !

Articles connexes :

Code standard php pour filtrer les balises HTML, les espaces et les sauts de ligne

Comment spécifier des caractères dans les variables de remplacement régulières PHP

Une brève analyse d'exemples de fonctions de correspondance, de remplacement et de segmentation d'expressions régulières PHP

Compétences en développement PHP (12) - Exemple détaillé d'explication de code des expressions régulières PHP couramment utilisées

Déclaration:
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