Maison  >  Article  >  développement back-end  >  Comment ignorer les espaces facultatifs dans les expressions régulières pour l'analyse HTML ?

Comment ignorer les espaces facultatifs dans les expressions régulières pour l'analyse HTML ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-24 08:29:01640parcourir

How to Ignore Optional Whitespace in Regular Expressions for HTML Parsing?

Espaces facultatifs dans les expressions régulières

Lors de l'analyse de données HTML ou texte, il est souvent nécessaire d'ignorer les espaces entre certains caractères. Cependant, cela peut être difficile à utiliser avec des expressions régulières.

Solution Utiliser s ? et s* Quantificateurs

Pour faire correspondre les espaces facultatifs entre les caractères, utilisez les quantificateurs s ? et s*.

  • s correspond à n'importe quel caractère d'espacement (espace, tabulation, nouvelle ligne, etc.).
  • ? signifie le Le caractère précédent peut apparaître une fois ou pas du tout.
  • * signifie que le caractère précédent peut apparaître zéro ou plusieurs fois.

Exemple

Pour ignorer les espaces dans les balises HTML suivantes :

<code class="html"><a href="/wiki/File:Sky1.png" title="File:Sky1.png">
<img alt="Sky1.png" src="http://media-mcw.cursecdn.com/thumb/5/56/Sky1.png/150px-Sky1.png" width="150" height="84">
</a></code>

Utilisez l'expression régulière suivante :

'#<a href\s?="(.*?)" title\s?="(.*?)"><img alt\s?="(.*?)" src\s?="(.*?)"[\s*]width\s?="150"[\s*]height\s?="(.*?)"></a>#'

Cette expression permet un espace facultatif entre les noms d'attribut et leurs valeurs, ainsi qu'entre les valeurs d'attribut et les balises HTML environnantes.

Remarque sur les classes de caractères

Le code d'origine utilisait la classe de caractères [s ], ce qui a provoqué des résultats inattendus. Une classe de caractères correspond une fois à l'un de ses membres, et le quantificateur lui permet de se produire plusieurs fois. En remplaçant [s] par s, vous vous assurez que seuls les caractères d'espacement correspondent et que le quantificateur s'applique spécifiquement à eux.

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