L'exemple de cet article décrit la méthode de mise en correspondance d'un groupe de caractères dans le didacticiel des expressions régulières. Partagez-le avec tout le monde pour votre référence, comme suit :
Remarque : dans tous les exemples, les résultats de correspondance des expressions régulières sont inclus entre [et] dans le texte source. Certains exemples seront implémentés en utilisant Java. Les expressions régulières en Java lui-même seront expliquées aux endroits correspondants. Tous les exemples Java sont testés sous JDK1.6.0_13.
1. Faire correspondre l'un des plusieurs caractères
Un exemple de correspondance d'un fichier texte commençant par na ou sa 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", le 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 les 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 [et] pour définir un jeu de caractères. Dans le jeu de caractères défini à l'aide de [et], tous les caractères entre ces deux métacaractères font partie du jeu de caractères. Le résultat de la correspondance est un texte qui peut correspondre à n'importe quel membre. de l'ensemble.
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 : 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 en utilisant une collection 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 les fichiers commençant par na ou sa suivi d'un numéro, et san.txt ne correspondait pas car le jeu de caractères [0123456789] a été utilisé pour limiter le troisième caractère aux seuls chiffres.
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. Les premier et 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.
Regardons 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 :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 du même ensemble de 6 caractères [0-9A-Fa-f] (cela peut être abrégé en #[0-9A-Fa-f]{6 }, cela sera discuté plus tard dans Répéter la correspondance).
3. Obtenez des 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 devons faire le contraire, en donnant un ensemble de caractères qu'il n'est pas nécessaire d'obtenir, en d'autres termes, sauf dans ce jeu de caractères Caractères dans , tous les autres caractères peuvent correspondre.
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 l'opposé du précédent, le précédent [0- 9] correspond uniquement aux nombres, et ici [^0-9] correspond aux non-chiffres.
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.
J'espère que cet article sera utile à tout le monde pour apprendre les expressions régulières.
Pour plus de tutoriels sur les expressions régulières sur la correspondance d'un groupe de caractères, veuillez faire attention au site Web PHP chinois pour les articles connexes !