正規表現の使用 HTML テキスト内に含まれるファイルまたは画像へのすべてのリンクを抽出したいと考えています。いくつかの例を試してみましたが、多くの理由で失敗しました (私が正規表現に熟練していないことが主な原因です:))
1)最初にこれを試しました:
> Regex("<img[^>]+src=[""']([^""']+)[""']", RegexOptions.Singleline Or
> RegexOptions.IgnoreCase)
(画像ならOK)
2) そして、これ:
Regex("href=[""']([^""']+)[""']", RegexOptions.Singleline Or RegexOptions.IgnoreCase)
1)すべての画像を抽出します。問題なく動作しますが、それは部分的な解決策にすぎません。2) すべての href="asdf" を抽出しますが、ファイルを指す href のみを抽出したいので、アンカー (#middlesection) や .aspx、さらには href="www.google.com/site" のような拡張子のない URL は必要ありません。
特定のテキストからすべてのファイルを抽出する方法を知りたいです。ファイルは、ドットと3文字で終わるリンクです:)
「.aspx」や「.html」、「id_content=99」のような拡張子のない URL、「#anchor123」のようなアンカーには興味がありません。
これを単一の正規表現にパックすることは可能ですか? このすべての背後にある考え方は、HTML で参照されているすべてのファイルをある場所から別の場所にコピーする必要があるということです。したがって、コピーするファイル パスのみを含む ArrayList が必要です。
前もって感謝します!
「野生の」HTMLに関するものではないことを明確にするために、いくつかのサンプルコードを追加しました
このコードを与える:
<p>This is a paragraph</p>
<br>
<a href="#someplace">Go to someplace</a>
<ul>
<li><p><a href="../files/document.pdf">Important PDF 1</a></p></li>
<li><p><a href="../files/document.xls">Important XLS</a></p></li>
</ul>
<a href="content.aspx?id_content=55">Go to content 55</a>
<br>
<img src="../images/nicelogo.jpg">
私はこれを取得したい:
"../files/document.pdf"
"../files/document.xls"
"../images/nicelogo.jpg"
私はこれを手に入れたくありません:
"#someplace"
"content.aspx?id_content=55"
それだけです。私が持っている正規表現を使用すると、すべてのリンクを取得できます。ファイルを表すリンクのみが必要です。HTML は私が手作業で書いているので (長い話ですが)、奇妙な二重引用符や不正な形式のタグ、奇妙な文字はありません。
ほぼ完了しているため、実行できることはわかっていますが、「最後に「.something」が「something」である3文字の文字列である一致のみを教えてください」と伝える方法がわかりません。私の言いたいことが分かりますか?:)