首頁 > 後端開發 > C++ > 如何使用正規表示式從錨連結中提取 href 屬性值?

如何使用正規表示式從錨連結中提取 href 屬性值?

Barbara Streisand
發布: 2025-01-10 10:39:41
原創
428 人瀏覽過

How to Extract href Attribute Values from Anchor Links Using Regular Expressions?

利用正規表示式擷取錨連結的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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板