使用正则表达式我想提取包含在某些 HTML 文本中的文件或图像的所有链接。尝试了几个例子,但由于很多原因都失败了(主要是我不擅长正则表达式:))
1)首先我试过这个:
> Regex("<img[^>]+src=[""']([^""']+)[""']", RegexOptions.Singleline Or
> RegexOptions.IgnoreCase)
(它适用于图像)
2)然后这个:
Regex("href=[""']([^""']+)[""']", RegexOptions.Singleline Or RegexOptions.IgnoreCase)
1)提取所有图像,它工作正常,但这只是部分解决方案。2)提取所有href =“asdf”,但我只想提取指向文件的href,我不想要锚(#middlesection)或.aspx甚至没有像href =“www.google.com/site”这样的扩展名的url
我想知道如何从给定文本中提取所有文件,作为以点和三个字符结尾的任何链接的文件:)
我对“.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”的匹配项是“something”一个三个字符的长字符串”。我清楚了吗?:)