Maison  >  Article  >  interface Web  >  Comment utiliser la référence arrière régulière

Comment utiliser la référence arrière régulière

php中世界最好的语言
php中世界最好的语言original
2018-03-30 10:27:181115parcourir

Cette fois, je vais vous montrer comment utiliser la référence arrière régulière, et quelles sont les précautions lors de l'utilisation de la référence arrière régulière. Voici un cas pratique, jetons un coup d'œil.

Dans tous les exemples, le résultat de la correspondance expression régulière est contenu entre [et] dans le texte source. Certains exemples seront implémentés en utilisant Java. lui-même L'utilisation des expressions sera expliquée aux endroits correspondants. 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>

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 sur mon passe-temps.

Ceci n'est pas valide HTML

Analyse : le motif <[hH][1-6]> La balise de début n'est pas sensible à la casse. Dans cet exemple, elle correspond à

,

, ,

; Les métacaractères paresseux sont utilisés ici pour faire correspondre le texte dans les balises, sinon le contenu de la première balise de début à la dernière balise de fin sera mis en correspondance. 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 :

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

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

Résultat :


Bienvenue sur ma page

】 Contenu est divisé en deux sections :

Introduction

Informations sur moi.

Hobby

Informations sur mon passe-temps.

Ceci n'est pas valide HTML

Analyse : faites d'abord correspondre le modèle de la balise de titre de départ<[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 à la première 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 la dernière balise de titre invalide ne correspondra pas.

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 :

Comment écrire des expressions régulières pour faire correspondre un groupe de caractères

Explication détaillée de la correspondance de position de expressions régulières

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