Maison  >  Article  >  développement back-end  >  Comment puis-je faire correspondre les caractères de nouvelle ligne dans Regex lors de l'extraction de contenu à partir de balises HTML ?

Comment puis-je faire correspondre les caractères de nouvelle ligne dans Regex lors de l'extraction de contenu à partir de balises HTML ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-01 01:31:28259parcourir

How Can I Match Newline Characters in Regex When Extracting Content from HTML Tags?

Faire correspondre les caractères de nouvelle ligne avec le modificateur DOTALL Regex

Lorsque vous travaillez avec une chaîne contenant des caractères normaux, des espaces et des nouvelles lignes entourés de balises HTML div, le but est d'extraire le contenu entre

et
en utilisant des expressions régulières. Un problème courant survient lorsque le métacaractère standard .* ne correspond pas aux nouvelles lignes.

Pour surmonter ce problème, il faut utiliser le modificateur DOTALL (/s). Ce modificateur garantit que le caractère point (. dans l'expression régulière) correspond à tous les caractères, y compris les nouvelles lignes. En incorporant ce modificateur dans l'expression régulière, il devient possible de capturer avec précision le contenu dans les balises div :

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

Cependant, cette approche peut entraîner des correspondances gourmandes. Pour résoudre ce problème, il est recommandé d'utiliser une correspondance non gourmande :

'/<div>(.*?)<\/div>/s'

Vous pouvez également faire correspondre tout sauf < peut également être une solution s'il n'y a pas d'autres balises présentes :

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

Il convient de noter que l'utilisation d'un caractère autre que / comme délimiteur d'expression régulière peut améliorer la lisibilité, éliminant ainsi le besoin d'échapper / dans . Voici un exemple utilisant # comme délimiteur :

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

Bien que ces solutions puissent suffire pour des cas simples, il est crucial de reconnaître que le HTML est complexe et que l'analyse des expressions régulières à elle seule peut ne pas suffire. Pour garantir une analyse complète et fiable, il est conseillé d'envisager d'utiliser un analyseur HTML dédié.

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