Maison > développement back-end > tutoriel php > Comment faire correspondre les caractères de nouvelle ligne dans les balises HTML à l'aide d'expressions régulières ?

Comment faire correspondre les caractères de nouvelle ligne dans les balises HTML à l'aide d'expressions régulières ?

DDD
Libérer: 2024-11-02 01:55:31
original
1003 Les gens l'ont consulté

How Do I Match Newline Characters within HTML Tags Using Regular Expressions?

Correspondance de caractères de nouvelle ligne avec des expressions régulières

Vous rencontrez un défi en essayant de faire correspondre des chaînes entre

et
balises, où les caractères de nouvelle ligne sont présents. L'expression régulière standard .* ne parvient pas à reconnaître ces caractères de nouvelle ligne.

Pour résoudre ce problème, utilisez le modificateur DOTALL (alias /s), qui permet au point (.) de correspondre à n'importe quel caractère, y compris les nouvelles lignes. Essayez l'expression suivante :

'/<div>(.*)<\/div>/s'
Copier après la connexion

Cependant, notez que la correspondance gourmande peut ne pas donner le résultat souhaité. Pensez à utiliser une correspondance non gourmande :

'/<div>(.*?)<\/div>/s'
Copier après la connexion

Vous pouvez également faire correspondre n'importe quoi sauf '<', à condition qu'aucune autre balise ne soit présente :

'/<div>([^<]*)<\/div>/s'
Copier après la connexion

N'oubliez pas, l'utilisation d'un caractère autre que « / » comme délimiteur (par exemple, « # ») peut améliorer la lisibilité en éliminant le besoin d'échapper « / » dans les balises. Voici un exemple avec '#' :

'#<div>([^<]*)<\/div>'
Copier après la connexion

Malgré ces options, il est important d'être conscient des limites des regex lorsqu'il s'agit de HTML complexe. Les divs imbriqués, les espaces supplémentaires et d'autres complexités peuvent rendre l'analyse des regex peu fiable. Pour une analyse plus précise, envisagez plutôt d'utiliser un analyseur HTML.

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!

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