Utilisez des expressions régulières pour extraire la valeur de l'attribut href du lien d'ancrage
Pour extraire la valeur de l'attribut href d'un lien d'ancrage HTML, vous pouvez utiliser une expression régulière personnalisée. Voici une réponse complète à vos besoins spécifiques :
Le modèle regex "@(<a.>?>.?)" que vous avez fourni identifie les liens d'ancrage, mais il ne capture pas la valeur href. Pour y parvenir il vous faut un schéma plus précis :
<code><a\s+(?:[^>]*?\s+)?href=(["'])(.*?)</code>
Ce mode se décompose comme suit :
<a
correspond à la balise d'ancrage de départ. s (?:[^>]*?s )?
correspond à tous les espaces et attributs facultatifs (groupes non capturants) dans les balises d'ancrage. href=
correspond à l'attribut href. (["'])(.*?)1
capture la valeur href, qui se situe entre guillemets doubles ou simples (groupe de capture). Filtrer les URL valides
Pour filtrer les URL non valides (URL ne contenant ni caractères "?" ni "="), vous pouvez utiliser l'expression régulière suivante :
<code>page\.php\?id\=.*</code>
Ce modèle correspond aux chaînes qui correspondent aux critères que vous spécifiez.
Extraire la valeur href de la liste chaînée
Vous avez déclaré que vous n'aviez plus besoin d'analyser les balises d'ancrage, et vous disposez désormais d'une liste de liens au format "href="abcdef"". Pour extraire la valeur href de cette liste, vous pouvez utiliser :
<code>"href=(['"])(.*?)</code>
Ce mode capture les valeurs href même si elles sont placées entre guillemets doubles ou simples.
Extrait de code JavaScript
Pour montrer comment utiliser ces modèles d'expressions régulières en JavaScript, voici un extrait de code :
<code class="language-javascript">const pattern = /<a\s+(?:[^>]*?\s+)?href=(["'])(.*?)/; const linkText = '<a href="www.example.com/page.php?id=xxxx&name=yyyy"></a>'; const match = pattern.exec(linkText); if (match) { console.log(match[2]); // 输出:www.example.com/page.php?id=xxxx&name=yyyy }</code>
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!