Tutoriel sur les expressions régulières - explication détaillée de la correspondance d'un seul caractère

高洛峰
Libérer: 2023-03-04 17:34:01
original
1881 Les gens l'ont consulté

L'exemple de cet article décrit le didacticiel d'expression régulière sur la correspondance d'un seul caractère. 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.

Code de test Java :

/**
 * 根据正则表达式和要匹配的源文本,输出匹配结果
 * @param regex 正则表达式
 * @param sourceText 要匹配的源文本
 */
public static void matchAndPrint(String regex, String sourceText){
  Pattern pattern = Pattern.compile(regex);
  Matcher matcher = pattern.matcher(sourceText);
  while(matcher.find()){
    System.out.println(matcher.group());
  }
}
Copier après la connexion

1. Texte brut correspondant

1 Il n'y a qu'un seul résultat correspondant

Tout d'abord, regardons un. expression régulière simple La formule, aujourd'hui, bien qu'elle soit elle-même du texte brut, est une expression régulière. Regardons un exemple :

Texte source : Hier c'est de l'histoire, demain est un mystère, mais aujourd'hui est un cadeau.

Expression régulière : aujourd'hui

Résultat : Hier c'est histoire, demain est un mystère, mais 【aujourd'hui】 est un cadeau.

Analyse : L'expression régulière utilisée ici est du texte brut, qui correspond à aujourd'hui dans le texte source.

Appelez la méthode matchAndPrint et le résultat de sortie est :

aujourd'hui

2 Il existe plusieurs résultats correspondants

Texte source : Hier, c'est l'histoire, demain est un mystère, mais aujourd'hui est un cadeau.

Expression régulière : est

Résultat : Hier c'est l'histoire, demain est un mystère, mais 【aujourd'hui】 est un cadeau.

Analyse : dans le texte source, il y a trois est, mais quatre sont affichés, car les est dans l'historique seront également mis en correspondance.

appelle la méthode matchAndPrint et le résultat de sortie est :

est

est

est

est

3. Problèmes de casse des lettres

Les expressions régulières sont sensibles à la casse, mais de nombreuses implémentations d'expressions régulières prennent également en charge les opérations de correspondance insensibles à la casse. En JavaScript, utilisez l'indicateur i pour effectuer une correspondance insensible à la casse. En Java, si vous souhaitez ne pas respecter la casse, lors de la compilation de l'expression régulière, vous pouvez spécifier :

Patternpattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Copier après la connexion

2. Faire correspondre n'importe quel caractère

Les expressions régulières vues précédemment sont toutes Elles sont du texte brut statique et ne reflètent pas du tout la puissance des expressions régulières. Voyons ensuite comment utiliser des expressions régulières pour faire correspondre des caractères imprévisibles.

Dans les expressions régulières, des caractères spéciaux (ou des collections de caractères) sont utilisés pour indiquer ce qu'il faut rechercher. Le caractère . (point de statut anglais) peut correspondre à n’importe quel caractère. Équivalent au caractère ? dans DOS et au caractère _ (trait de soulignement) dans SQL. Par exemple : l'expression régulière c.t correspondra à cat, cut, cot, etc. Regardons un exemple.

Texte :

orders1.txt

orders2.txt

sales1.txt

salesA.txt

order3.txt

sales2.txt

sales.txt

Expression régulière : ventes.

Résultat :

orders1.txt

orders2.txt

[sales1].txt

[salesA].txt

orders3.txt

[sales2].

【sales.】txt

Analyse : L'expression régulière sales trouvera le nom du fichier composé de la chaîne sales et d'une autre chaîne. Cela peut être vu dans les résultats. les nombres et lui-même. 4 fichiers sur 7 correspondent à ce modèle.

Si la méthode matchAndPrint est appelée, le résultat de sortie est :

sales1

salesA

sales2

sales.

3. Faites correspondre les caractères spéciaux

Les caractères ont des significations particulières dans les expressions régulières. Si vous avez besoin d'un . dans le modèle, vous devez trouver un moyen d'indiquer à l'expression régulière que vous avez besoin du caractère . lui-même plutôt que de sa signification particulière dans l'expression régulière. Pour ce faire, vous devez échapper le caractère . C'est aussi un métacaractère (métacaractère, indiquant que ce caractère a une signification particulière, et non la signification du caractère lui-même). Considérez l'exemple suivant.

Trouvez des fichiers commençant par na ou sa, quel que soit le numéro qui le suit.

Texte :

sales.txt

na1.txt

na2.txt

sa1.txt

sanatxt.txt

Expression régulière : .a..txt

Résultat :

[sal]es.txt

[na1].txt

[na2].txt

[sa1].txt

[sanatxt].txt

Analyse : Cette expression régulière combine na1.txt et na2.txt , sa1.txt a été trouvé, mais 2 résultats inattendus ont également été trouvés. Parce que le caractère . dans l'expression régulière .a..txt correspondra à n'importe quel caractère. Pour faire correspondre le caractère . lui-même, vous devez utiliser l'échappement. Modifier l'expression régulière en .a..txt peut répondre à nos besoins.

Remarque : si vous utilisez Java, l'expression régulière .a..txt doit être écrite sous la forme .a.\.txt, car c'est également un caractère d'échappement dans le langage Java.

4. Résumé

Les expressions régulières sont souvent appelées modèles. Ce sont en fait des chaînes composées de certains caractères. Ces caractères peuvent être des caractères ordinaires (texte brut) ou des métacaractères (caractères spéciaux ayant une signification particulière). Voici une introduction à la façon d'utiliser des caractères ordinaires et des métacaractères pour faire correspondre les caractères unitaires. .peut correspondre à n’importe quel caractère. Utilisé pour échapper aux caractères. Dans les expressions régulières, les séquences de caractères ayant une signification particulière commencent toujours par un caractère. Dans le prochain article, nous verrons comment faire correspondre des groupes de personnages.

Pour plus de tutoriels sur les expressions régulières sur la correspondance d'un seul caractère et des articles connexes, veuillez faire attention au site Web PHP chinois !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal