Comment faire correspondre le point (.) aux nouvelles lignes dans les expressions régulières ?

Mary-Kate Olsen
Libérer: 2024-10-31 13:10:02
original
487 Les gens l'ont consulté

How to Make the Dot (.) Match Newlines in Regular Expressions?

Utilisation d'expressions régulières pour faire correspondre les points aux caractères de nouvelle ligne

Dans les expressions régulières, le point (.) peut correspondre à n'importe quel caractère, à l'exception des nouvelles lignes. Cependant, vous souhaiterez peut-être parfois également faire correspondre les nouvelles lignes.

Pour y parvenir, vous pouvez utiliser le modificateur DOTALL (/s). Cela fait que le point correspond à tous les caractères, y compris les nouvelles lignes.

Par exemple, l'expression régulière suivante ne correspondra pas aux nouvelles lignes :

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

Pour qu'elle corresponde aux nouvelles lignes, ajoutez le modificateur DOTALL :

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

Cependant, cela n'est peut-être pas idéal si vous souhaitez un match non gourmand. Au lieu de cela, vous pouvez utiliser une correspondance non gourmande :

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

Alternativement, s'il n'y a pas d'autres balises, vous pouvez tout faire correspondre sauf '<' caractères :

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

Il convient également de noter que vous n'avez pas nécessairement besoin d'utiliser '/' comme délimiteur pour les expressions régulières. L'utilisation d'un caractère différent vous permet d'éviter d'échapper aux barres obliques dans

, améliorant ainsi la lisibilité. Par exemple, voici à quoi ressemblerait l'expression régulière précédente en utilisant '#' comme délimiteur :

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

Néanmoins, il est important d'être conscient que ces solutions peuvent échouer en présence de divs imbriqués, d'espaces supplémentaires, Commentaires HTML et autres complexités. Le HTML est assez complexe, il est donc souvent plus approprié d'utiliser un analyseur HTML pour de telles tâches.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal