Cette fois, je vais vous montrer comment écrire une expression régulière pour faire correspondre un groupe de caractères, et quelles sont les précautions pour faire correspondre un groupe de caractères avec une expression régulière. Ce qui suit est un cas pratique. , jetons un coup d'oeil.
L'exemple de cet article décrit la méthode de mise en correspondance d'un groupe de caractères dans le didacticiel expression régulière. Partagez-le avec tout le monde pour référence, comme suit :
Remarque : Dans tous les exemples, les résultats de correspondance des expressions régulières sont inclus dans le texte source [ et ], quelques exemples seront implémentés en utilisant Java. S'il s'agit de l'utilisation d'expressions régulières dans Java lui-même, cela sera expliqué à l'endroit correspondant. Tous les exemples Java sont testés sous JDK1.6.0_13.
1. Faites correspondre l'un des plusieurs caractères
Une correspondance dans l'article précédent "Tutoriel sur les expressions régulières : explication détaillée de la correspondance avec un seul caractère" Dans l'exemple d'un fichier texte commençant par na ou sa, l'expression régulière utilisée est .a..txt. S'il existe un autre fichier appelé cal.txt, il sera également mis en correspondance. Que dois-je faire si je souhaite uniquement faire correspondre des fichiers commençant par na ou sa ?
Puisque nous voulons uniquement trouver n ou s, utiliser . qui peut correspondre à n'importe quel caractère n'est évidemment pas possible. Dans les expressions régulières, nous pouvons utiliser [and] pour définir une combinaison jeu de caractères Dans le jeu de caractères défini à l'aide de [and], tous les caractères entre ces deux métacaractères sont le composant A d'un ensemble. d'un jeu de caractères est un texte qui peut correspondre à n'importe quel membre du jeu.
Regardons un exemple similaire au précédent :
Texte :
sales.txt
na1 .txt
na2.txt
sa1.txt
sanatxt.txt
cal.txt
Expression régulière : [ns]a..txt
Résultat :
sales.txt
[na1.txt]
[na2.txt]
【sa1.txt】
sanatxt.txt
cal.txt
Analyse : Le L'expression régulière utilisée ici commence par [na]. Cet ensemble correspondra aux caractères n ou s et ne correspondra à aucun autre caractère. [ et ] ne correspondent à aucun caractère ; ils définissent uniquement un ensemble de caractères. Ensuite, a correspond à un caractère a, . correspondra à un caractère . lui-même, txt correspondra au caractère txt lui-même et le résultat correspondant est cohérent avec ce à quoi nous nous attendions.
Cependant, si l'un des fichiers est usa1.txt, il sera également mis en correspondance. Il s’agit d’un problème de correspondance de position, qui sera discuté plus tard.
2. Utilisez l'intervalle du jeu de caractères
Dans l'exemple ci-dessus, que se passe-t-il si nous voulons uniquement faire correspondre les fichiers qui commencent par na ou sa et sont suivis d'un nombre ? Dans l'expression régulière [ns]a..txt, . correspondra à n'importe quel caractère, y compris les nombres. Ce problème peut être résolu à l'aide d'un jeu de caractères :
sales.txt
na1.txt
na2 .txt
sa1.txt
san.txt
sanatxt.txt
cal.txt
Expression régulière : [ns]a[0123456789].txt
Résultat :
sales.txt
[na1.txt]
[na2.txt]
【sa1.txt】
san.txt
sanatxt.txt
cal.txt
Analyse : Comme vous pouvez le voir sur les résultats, nous ne faisons correspondre que ceux commençant par na ou sa , suivi d'un fichier numérique, et san.txt ne correspondait pas car le jeu de caractères [0123456789] a été utilisé pour limiter le troisième caractère à un seul nombre.
Dans les expressions régulières, certains intervalles de caractères sont fréquemment utilisés, tels que 0-9, a-z, etc. Afin de simplifier la définition des intervalles de caractères, les expressions régulières fournissent un métacaractère spécial - pour définir la plage de caractères. Comme dans l'exemple ci-dessus, nous pouvons utiliser des expressions régulières pour faire correspondre : [ns]a[0-9].txt, et le résultat est exactement le même que ci-dessus.
La plage de caractères ne se limite pas aux chiffres. Les plages de caractères suivantes sont légales :
[A-F] : correspond à toutes les lettres majuscules de A à F.
[A-Z] : correspond à toutes les lettres majuscules de A à Z.
[A-z] : fait correspondre toutes les lettres du caractère ASCII A au caractère ASCII z. Mais cet intervalle n’est généralement pas utilisé, ce n’est qu’un exemple. Parce qu'ils contiennent également des caractères tels que [ et ^, qui sont disposés entre Z et a en ASCII.
Le premier et le dernier caractères de l'intervalle de caractères peuvent être n'importe quel caractère de la liste de caractères ASCII. Mais en pratique, les plages les plus couramment utilisées sont les chiffres et les caractères alphabétiques.
Remarque : lors de la définition d'un intervalle de caractères, le dernier caractère de l'intervalle ne peut pas être plus petit que le premier caractère (comme [9-0]). - comme un métacaractère ne peut apparaître qu'entre [ et ], s'il se trouve n'importe où en dehors de [ et ], il s'agit simplement d'un caractère ordinaire et ne correspondra qu'à lui-même.
Plusieurs plages de caractères peuvent être données dans le même jeu de caractères, par exemple : [0-9a-zA-Z] correspondra à toutes les lettres et chiffres majuscules et minuscules.
Regardez un exemple de correspondance de couleurs dans une page Web :
Texte :
<span style="background-color:#3636FF;height:30px; width:60px;">测试</span>
Expression régulière : #[0-9A-Fa-f ] [0-9A-Fa-f] [0-9A-Fa-f] [0-9A-Fa-f] [0-9A-Fa-f] [0-9A-Fa-f]
Résultat :[#3636FF];hauteur:30px; largeur:60px;">Test
Analyse : dans les pages Web, la couleur est généralement exprimée sous la forme d'une valeur RVB commençant par #, R représente le rouge, G représente le vert et B représente le bleu. N'importe quelle couleur peut être mélangée à travers différentes combinaisons de RVB. Les valeurs RVB sont représentées par des valeurs hexadécimales, telles que #000000 représentant le blanc, #FFFFFF représentant le noir et #FF0000 représentant le rouge. Par conséquent, l'expression régulière permettant de faire correspondre les couleurs dans les pages Web commence par #, suivi de 6 jeux de caractères [0-9A-Fa-f] identiques (cela peut être abrégé en #[0-9A-Fa-f]{6}, Ceci sera discuté plus tard dans Répéter la correspondance).
3. Obtenez des caractères non correspondants
Le jeu de caractères est généralement utilisé pour spécifier un ensemble de caractères qui doivent correspondre à l'un d'entre eux, mais dans certains cas, nous avons besoin faire le contraire donne un jeu de caractères qu'il n'est pas nécessaire d'obtenir. En d'autres termes, à l'exception des caractères de ce jeu de caractères, tous les autres caractères peuvent être mis en correspondance.
Par exemple, pour faire correspondre les fichiers qui commencent par na ou sa et ne sont pas suivis de chiffres :
Texte :
sales.txt
na1.txt
na2.txt
sa1.txt
sanatxt.txt
san.txt
Expression régulière : [ns]a[^0-9].txt
Résultat :
sales.txt
na1.txt
na2.txt
sa1.txt
sanatxt.txt
[san.txt]
Analyse : Le modèle utilisé dans cet exemple est exactement le contraire du précédent. Le [0-9] précédent ne correspondait qu'à des nombres, mais ici [^0-9] correspondait à des non-nombres.
Remarque : ^ entre [ et ] signifie négation. S'il apparaît au début de l'expression régulière, cela signifie que la correspondance de position correspond, ce qui sera discuté plus tard. Dans le même temps, l'effet de ^ s'appliquera à tous les caractères ou intervalles de caractères d'un jeu de caractères donné, et pas seulement au caractère ou à l'intervalle de caractères qui suit immédiatement le caractère ^. Par exemple, [^0-9a-z] signifie qu’il ne correspond à aucun chiffre ni lettre minuscule.
4. Résumé
Les métacaractères [et] sont utilisés pour définir un ensemble de caractères, et leur signification est qu'ils doivent correspondre à l'un des caractères de l'ensemble . Il existe deux manières de définir un jeu de caractères : l'une consiste à répertorier tous les caractères ; l'autre consiste à utiliser des métacaractères - donnés sous forme d'intervalles de caractères. Les jeux de caractères peuvent être annulés à l'aide du métacaractère ^, qui exclura de force le jeu de caractères donné de l'opération de correspondance. À l'exception des caractères du jeu de caractères, d'autres caractères peuvent être mis en correspondance.
Dans le prochain article, nous aborderons l'utilisation de certains métacaractères dans les expressions régulières.
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php. !
Lecture recommandée :
Expression régulière de vérification de la force du mot de passe JS (avec code)
Expression régulière dans JQ Vérifiez que le la méthode ne peut pas contenir de chinois
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!