利用正規表示式擷取錨連結的href屬性值
要從HTML錨定連結中提取href屬性值,可以使用自訂的正規表示式。以下是一個全面的解答,滿足您的特定需求:
您提供的正規表示式模式“@(<a.>?>.?)”可以識別錨鏈接,但它不會捕獲href值。要實現此目的,您需要一個更具體的模式:
<code><a\s+(?:[^>]*?\s+)?href=(["'])(.*?)</code>
此模式的分解如下:
<a
匹配起始錨標籤。 s (?:[^>]*?s )?
匹配錨標籤內的任何空格和可選屬性(非捕獲組)。 href=
匹配href屬性。 (["'])(.*?)1
捕捉href值,該值位於雙引號或單引號之間(捕獲組)。 過濾有效的URL
要過濾掉無效的URL(既沒有「?」也沒有「=」字元的URL),可以使用以下正規表示式:
<code>page\.php\?id\=.*</code>
此模式符合符合您指定條件的字串。
從連結清單中擷取href值
您已說明您不再需要解析錨標籤,並且您現在有一個格式為「href="abcdef""的連結清單。要從此清單中提取href值,您可以使用:
<code>"href=(['"])(.*?)</code>
即使href值用雙引號或單引號括起來,此模式也能捕捉href值。
JavaScript程式碼片段
為了示範如何在JavaScript中使用這些正規表示式模式,這裡有一個程式碼片段:
<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>
以上是如何使用正規表示式從錨連結中提取 href 屬性值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!