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