Maison >développement back-end >tutoriel php >Comment faire correspondre le point (.) aux nouvelles lignes dans les expressions régulières ?

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 13:10:02492parcourir

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

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

/<div>(.*)</div>/s

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

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

/<div>([^<]*)</div>/

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

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!

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