Utilisation d'expressions régulières pour extraire les valeurs href des liens HTML
Bien qu'un analyseur HTML dédié soit généralement recommandé pour une analyse HTML robuste, une approche d'expression régulière peut être utilisée pour des scénarios plus simples. Cette solution extrait les href
valeurs, en gérant à la fois les guillemets simples et doubles :
<code><a\s+(?:[^>]*?\s+)?href=("|')(.+?)</code>
Explication :
<as
: correspond à la balise d'ouverture <a>
suivie d'un espace facultatif.(?:[^>]*?s )?
: correspond éventuellement à tous les autres attributs et espaces avant href
. Le ?:
en fait un groupe non capturant.href=("|')
: correspond à l'attribut href
suivi d'un guillemet simple ou double. La citation est capturée dans le groupe 1.(. ?)
: capture la valeur href
elle-même (groupe 2).1
: Correspond à la citation de clôture (identique à la citation d'ouverture capturée dans le groupe 1).Considérations importantes :
Cette expression régulière n'est pas un analyseur HTML complet. Il échouera sur du HTML malformé ou complexe. Il est particulièrement adapté aux extraits HTML simplifiés et prétraités. Par exemple, utilisez-le sur une liste d'attributs href
extraits comme ceci : href="mylink.com"
Filtrage pour des types de liens spécifiques :
Pour filtrer les liens contenant à la fois un point d'interrogation (?
) et un signe égal (=
), utilisez cette expression régulière raffinée :
<code>href=(.*?)\?(.*?)=(.*?)</code>
Cela garantit que seuls les liens présentant les caractéristiques spécifiées sont sélectionnés. N'oubliez pas que les structures HTML complexes nécessitent un analyseur HTML dédié pour des résultats fiables.
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!