Maison  >  Article  >  développement back-end  >  Théorie des expressions régulières PHP

Théorie des expressions régulières PHP

墨辰丷
墨辰丷original
2018-05-16 14:19:251495parcourir

Cet article présente principalement les connaissances théoriques sur les expressions régulières PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

1. Expression des chiffres de contrôle

1 Numéro :
^[0-9]*$
2 Numéro à n chiffres :
^d{n }$
3 Nombre avec au moins n chiffres :
^d{n,}$
4 Nombre avec m-n chiffres :
^d{m,n}$
5 Zéro et non nul Nombres au début :
^(0|[1-9][0-9]*)$
6 Nombres commençant par non zéro et comportant jusqu'à deux décimales :
^([1 -9] [0-9]*)+(.[0-9]{1,2})?$
7 Nombre positif ou négatif avec 1-2 décimales :
^(-)?d+ (. d{1,2})?$
8 Nombres positifs, nombres négatifs et décimaux :
^(-|+)?d+(.d+)?$
9 Nombres réels positifs avec deux décimales :
^[0-9]+(.[0-9]{2})?$
10 Un nombre réel positif avec 1 à 3 décimales :
^[0-9] +(.[ 0-9]{1,3})?$
11 Entier positif non nul :
^[1-9]d*$ ou ^([1-9][0-9 ]*){ 1,3}$ ou ^+?[1-9][0-9]*$
12 Entier négatif non nul :
^-[1-9][]0-9 "*$ ou ^-[1-9]d*$
13 Entier non négatif :
^d+$ ou ^[1-9]d*|0$
14 Entier non positif :
^-[ 1-9]d*|0$ ou ^((-d+)|(0+))$
15 Nombre à virgule flottante non négatif :
^d+(.d+) ? $ ou ^[1-9] d*.d*|0.d*[1-9]d*|0?.0+|0$
16 Nombre à virgule flottante non positif :
^( (-d+(.d+)?)| (0+(.0+)?))$ ou ^(-([1-9]d*.d*|0.d*[1-9]d*) )|0?.0+|0$
17 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]*))$
18 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]*)))$
19 Virgule flottante nombre :
^(-?d+)(. d+)?$ ou ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+ |0)$

2. Correction Expression des caractères de validation

1 Caractères chinois :
^[u4e00-u9fa5]{0,}$
2 Anglais et chiffres :
^[A-Za-z0-9]+ $ ou ^[A-Za-z0-9]{4,40}$
3 Tous les caractères de longueur 3-20 :
^.{3 ,20}$
4 par 26 anglais Une chaîne de lettres :
^[A-Za-z]+$
5 Une chaîne de 26 lettres majuscules anglaises :
^[A-Z]+$
6 Une chaîne de 26 lettres anglaises majuscules Une chaîne composée de lettres anglaises minuscules :
^[a-z]+$
7 Une chaîne composée de chiffres et de 26 lettres anglaises :
^[A-Za -z0-9]+$
8 Une chaîne composée de chiffres, 26 lettres anglaises ou traits de soulignement :
^w+$ ou ^w{3,20}$
9 chinois, anglais, chiffres incluant les traits de soulignement :
^[u4E00- u9FA5A-Za-z0-9_]+$
10 chinois, anglais, chiffres, mais sans les traits de soulignement et autres symboles :
^[u4E00-u9FA5A-Za-z0-9]+ $ ou ^[u4E00-u9FA5A- Za-z0-9]{2,20}$
11 Vous pouvez saisir des caractères contenant ^%&',;=?$":
[^%&',; =?$x22]+
12 Il est interdit de saisir des caractères contenant ~ :
[^~x22]+

3. Expressions d'exigences particulières

1. Adresse e-mail :
^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
2. :
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9] { 0,62})+/.?
3, InternetURL :
[a-zA-z]+://[^s]* ou ^http://([w-]+.) + [w-]+(/[w-./?%&=]*)?$
4, 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}$
5, Numéros de téléphone ("XXX-XXXXXXX", "XXXX-XXXXXXXX", "XXX-XXXXXXX", "XXX-XXXXXXXX", "XXXXXXX" et "XXXXXXXXX") :
^((d{3,4} -)| d{3.4}-)?d{7,8}$
6 Numéro de téléphone national (0511-4405222, 021-87888822) :
d{3}-d{8}|d{4 }-d {7}
7. Numéro d'identification :
Carte d'identité à 15 ou 18 chiffres :
^d{15}|d{18}$
Carte d'identité à 15 chiffres :
^[1 -9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$
Carte d'identité 18 bits :
^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1| 2]d) |3[0-1])d{4}$
8. Numéro d'identification court (chiffres, lettres se terminant par x) :
^([0-9]){7,18} (x|X )?$
ou
^d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
9. Le compte est-il légal (commençant par une lettre, autorisant 5 à 16 octets, autorisant les traits de soulignement alphanumériques) :
^[a-zA-Z][a-zA-Z0-9_]{4,15}$
10, mot de passe (commençant par Commençant 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}$
11, mot de passe fort (doit inclure la taille Écrivez une combinaison de lettres et de chiffres, 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}$
12. Format de date :
^d{4}-d{1,2}-d{1,2}
13. 12 mois de l'année (01 ~09 et 1~12) :
^(0?[1-9]|1[0-2])$
14, 31 jours d'un mois ( 01~09 et 1~31) :
^((0?[1-9])|((1|2)[0-9])|30|31)$
15, format de saisie d'argent :
16, 1. Oui Nous pouvons accepter quatre formes d'expression monétaire : "10 000,00" et "10 000,00", et "10 000" et "10 000" sans "cents" :
^[1-9][0 -9]*$
17, 2. Cela signifie tout nombre qui ne commence pas par 0, mais cela signifie aussi qu'un caractère "0" ne passe pas, on utilise donc la forme suivante :
^(0 |[1-9][ 0-9]*)$
18, 3. 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]*)$
19, 4. Cela signifie un 0 ou un nombre qui peut être négatif et ne commence pas par 0. Laissez l'utilisateur commencer par 0. Supprimez le signe négatif aussi, car l'argent ne peut jamais. Est-il négatif ? Ce que nous devons ajouter ci-dessous, c'est expliquer la partie décimale possible :
^[0-9]+(.[0-9]+)?$
20, 5. Ce qu'il faut expliquer, c'est qu'il doit y avoir au moins 1 chiffre après la virgule, donc "10" n'est pas transmis, mais "10" et "10.2" sont transmis :
^[0-9. ]+(.[0-9]{2 })?$
21. 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. faites ceci :
^[0-9]+(.[0-9]{1 ,2})?$
22. 7. Cela permet à l'utilisateur d'écrire une seule décimale. Nous devrions maintenant considérer. la virgule dans le nombre Nous pouvons faire ceci :
^[0-9]{1,3 }(,[0-9]{3})*(.[0-9]{1,2}) ?$
23, 8,1 à 3 chiffres, suivis d'une virgule + 3 chiffres, virgule Devient facultatif, pas obligatoire :
^([0-9]+|[0-9]{1,3}( ,[0-9]{3})*)(.[0-9] {1,2})?$
24. Remarque : Ceci est le résultat final. N'oubliez pas que "+" peut être. remplacé par "*" si vous pensez qu'une chaîne vide est acceptable (étrange, pourquoi ?) Enfin, n'oubliez pas de supprimer la barre oblique inverse lors de l'utilisation de la fonction, les erreurs courantes sont ici
25, fichier xml :
^([a-zA-Z]+-?)+[a-zA -Z0-9]+\.[x|X][m|M][l|L]$
26, expression régulière de Caractères chinois :
[u4e00-u9fa5]
27, caractères sur 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 codé sur deux octets compte pour 2, et la longueur d'un caractère ASCII compte pour 1))
28 . Expression régulière pour les lignes vides : ns*r (peut être utilisée pour supprimer des lignes vides)
. 29. Expression régulière pour les balises HTML :
<(S*?)[^>]*> *?|<.* (La version circulant sur Internet est dommage, celui ci-dessus n'est que partiellement efficace, et il est toujours impuissant pour les balises imbriquées complexes)
30 Régularisation des caractères d'espacement de début et de fin Expression : ^s*|s*$ ou (^s*)| (s*$) (peut être utilisé pour supprimer les caractères vides au début et à la fin de la ligne (y compris les espaces, les tabulations, les sauts de formulaire, etc.), expressions très utiles)
31, numéro Tencent QQ : [1- 9][0-9]{4,} (le numéro Tencent QQ commence à 10000)
32, code postal chinois : [1-9] d{5}(?!d) (le code postal chinois est composé de 6 chiffres)
33. Adresse IP : d+.d+.d+.d+ (utile lors de l'extraction de l'adresse IP)

Recommandations associées :

Expression régulière en Php

Expression régulière de date de naissance de vérification JS

Expression régulière en PHP Capture de groupes et groupes non captureurs

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