使用正規表示式從 HTML 連結中擷取 href 值
雖然通常建議使用專用的 HTML 解析器來實現強大的 HTML 解析,但正規表示式方法可用於更簡單的場景。 此解提取 href
值,處理單引號和雙引號:
<code><a\s+(?:[^>]*?\s+)?href=("|')(.+?)</code>
說明:
<as
:匹配開始 <a>
標記,後面跟著可選的空格。 (?:[^>]*?s )?
:可以選擇符合 href
之前的任何其他屬性和空格。 ?:
使其成為非捕獲組。 href=("|')
:匹配後跟單引號或雙引號的 href
屬性。 該報價被捕獲在第 1 組。 (. ?)
:捕獲 href
值本身(第 2 組)。 1
:匹配結束引號(與第 1 組中捕獲的開始引號相同)。 重要注意事項:
這個正規表示式不是一個完整的 HTML 解析器。它會在格式錯誤或複雜的 HTML 上失敗。 它最適合預處理、簡化的 HTML 片段。 例如,在提取的 href
屬性清單上使用它,如下所示:href="mylink.com"
過濾特定連結類型:
要過濾包含問號 (?
) 和等號 (=
) 的鏈接,請使用此精煉的正則表達式:
<code>href=(.*?)\?(.*?)=(.*?)</code>
這可確保僅選擇具有指定特徵的連結。 請記住,複雜的 HTML 結構需要專用的 HTML 解析器才能獲得可靠的結果。
以上是如何使用正規表示式從 HTML 連結中提取 href 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!