使用正則表達式我想提取一些HTML文本中包含的文件或圖像的所有鏈接。試過幾個例子,但他們失敗的原因有很多(是主要的,我不是擅長的正則表達式:))Reg Exp從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 「
我想知道我可以從給定文本中提取的所有文件,作爲一個文件以點結束的三個字符:)
我不感興趣的任何鏈接」的.aspx」或「.html」,既不是像「id_content = 99」這樣的無延伸網址,也不是像「#anchor123」這樣的錨。
是否有可能將此打包成一個RegExp?所有這一切背後的想法是,我必須將某些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"
多數民衆贊成它,與我有的reg exp,我得到所有的鏈接,我只想要那些代表一個文件。 HTML由我手寫(長篇故事),所以不會出現奇怪的雙引號或畸形標籤或奇怪的字符。
我知道它有可能做到這一點,因爲它幾乎完成了,我只是不知道如何告訴「只給我一些有」.something「的匹配,最後是」一個三字符長的字符串「。我清楚了嗎? :)
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –
據我所知,RegExp不是完美的解決方案,但在這種情況下不是關於HTML「in w ILD」。我自己編寫HTML,我知道會有src =「../ files/image.jpg」或href =「../ files/document.pdf」,這就是我想要提取的鏈接類型英語的表達將是:給我那些鏈接在src =或href =之後,以點和三個字母(我的文件的定義)忽略其他所有內容結束:)我可以完成這一部分,我錯過了「結束於。和三個字母「由於缺乏RegExp知識 – Remoto
您是否讀過鏈接答案? –