ホームページ >バックエンド開発 >C++ >正規表現を使用して HTML リンクから href 値を抽出するにはどうすればよいですか?

正規表現を使用して HTML リンクから href 値を抽出するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-10 08:12:41240ブラウズ

How Can I Extract href Values from HTML Links Using Regular Expressions?

正規表現を使用して 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。