gpt4 book ai didi

regex - 正则表达式从 HTML 中提取所有文件

转载 作者:行者123 更新时间:2023-12-01 07:30:05 25 4
gpt4 key购买 nike

使用正则表达式我想提取一些 HTML 文本中包含的文件或图像的所有链接。尝试了几个例子,但由于很多原因他们都失败了(主要是我不擅长正则表达式:))

1) 首先我试过这个:

> Regex("<img[^>]+src=[""']([^""']+)[""']", RegexOptions.Singleline Or
> RegexOptions.IgnoreCase)

(它适用于图像)

2) 然后是:

Regex("href=[""']([^""']+)[""']", RegexOptions.Singleline Or RegexOptions.IgnoreCase)

1) 提取所有图像,它工作正常,但这只是部分解决方案。2) 提取所有 href="asdf",但我只想提取指向文件的 href,我不想要 anchor (#middlesection) 或 .aspx 甚至没有像 href="www.google.com/site"这样的扩展名的 url

我想知道如何从给定文本中提取所有文件,作为文件以点和三个字符结尾的任何链接:)

我对“.aspx”或“.html”不感兴趣,对“id_content=99”这样的无扩展 url 也不感兴趣,也不对“#anchor123”这样的 anchor 感兴趣。

是否可以将其打包到一个 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”一个三个字符长的字符串”。我清楚吗? :)

最佳答案

根据您的示例,大部分表达式不应匹配问号、片段哈希或双引号:

"([^?#"]*)\.[a-z]{3,4}"

最后一部分是强制扩展 3 到 4 个字符,并以句点开头。

编辑

要捕获双引号之间的部分:

"(([^?#"]*)\.[a-z]{3,4})"

不确定如何使用 ASP 避免在基本名称上进行内存捕获,在 PCRE 中您将使用 ?:

关于regex - 正则表达式从 HTML 中提取所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12699227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com