Maison > interface Web > js tutoriel > Explication détaillée de la référence arrière des expressions régulières_expressions régulières

Explication détaillée de la référence arrière des expressions régulières_expressions régulières

微波
Libérer: 2017-06-28 13:49:30
original
1613 Les gens l'ont consulté

Cet article présente principalement l'Expression régulièreTutoriel d'apprentissage BackreferenceRéférencebackreference, et analyse en détail le concept, la fonction et les compétences de mise en œuvre de la backreference sous forme d'exemples. Vous pouvez vous référer à ce qui suit

Les exemples de cet article décrivent la référence arrière de l'expression régulière. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

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. .Si c'est l'utilisation des expressions régulières dans Java lui-même, qui sera expliquée à l'endroit correspondant. Tous les exemples Java sont testés sous JDK1.6.0_13.

1. Introduction du problème

Un problème de correspondance des balises de titre (H1-H6) dans les pages HTML :

Texte :

<body>
<h1>Welcome to my page</H1>
Content is pided into twosections:<br>
<h2>Introduction</h2>
Information about me.
<H2>Hobby</H2>
Information about my hobby.
<h2>This is invalid HTML</h3>
</body>
Copier après la connexion
Copier après la connexion

Expression régulière : <[hH][1-6]>.*?

Résultat :


Bienvenue sur ma page


Le contenu est divisé en deux sections :
🎜>

Introduction


Informations sur moi.

Hobby


Informations à propos de mon passe-temps. [1-6]> correspond à la balise d'ouverture de n'importe quel titre de premier niveau et n'est pas sensible à la casse. Dans cet exemple, il correspond à

,

, Correspond à

, ,  ; ici, le métacaractère paresseux

est utilisé pour faire correspondre le texte dans la balise, sinon il le fera correspondre au premier Le contenu entre la balise d'ouverture et la dernière balise de fermeture. Mais les résultats montrent qu'une balise non valide correspond également, c'est-à-dire

, et qu'elles ne peuvent pas du tout être mises en correspondance. Pour résoudre ce problème, vous devez utiliser la référence arrière.
2. Correspondance de référence arrière

La référence arrière signifie que la seconde moitié du motif fait référence à la sous-expression définie dans la première moitié.

Quant à l'utilisation, à la division et à la référence des sous-expressions, elles ont déjà été introduites. Résolvons maintenant l'exemple précédent :

Texte :

Expression régulière : <[hH]([1-6])>.*?< [hH]1>

Résultat :

<body>
<h1>Welcome to my page</H1>
Content is pided into twosections:<br>
<h2>Introduction</h2>
Information about me.
<H2>Hobby</H2>
Information about my hobby.
<h2>This is invalid HTML</h3>
</body>
Copier après la connexion
Copier après la connexion

Bienvenue sur ma page

Le contenu est divisé en deux sections :

Introduction


Informations sur moi.

Informations sur mon passe-temps.

Ceci n'est pas valide HTML


Analyse : faites d'abord correspondre le motif de la balise de titre d'ouverture< ; [hH]([1-6])>, utilisez des crochets pour traiter [1-6] comme une sous-expression, et le modèle de balise de titre de fin correspondant est , où 1 signifie faire référence au premier Sous-expression, c'est-à-dire ([1-6]). Si ([1-6]) correspond à 1, alors 1 correspond également à 1. S'il correspond à 2, alors 1 correspond également à 2, donc le dernier n'est pas valide. la balise ne sera pas mise en correspondance.

PS : Voici 2 outils d'expression régulière plus pratiques pour votre référence :

JavaScriptOutil de test en ligne d'expressions régulières :

http://tools.jb51.net/regex/javascriptOutil de génération d'expressions régulières en ligne :
http://tools.jb51.net/regex/create_reg

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!

É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