【问题标题】:Regular expression for getting filenames from img tag of html code [duplicate]从html代码的img标签获取文件名的正则表达式[重复]
【发布时间】:2019-07-14 19:24:13
【问题描述】:

我想从包含 html 代码的字符串中检索图像的文件名(img 标签)。

以下示例:包含 2 个img html 标记的字符串(html 代码)。需要获取图片的文件名(不是完整的 url)。

<p>One two thre four</p>

<img src="http://localhost:5000/uploads/360e2b55a984178fd102a6cff9d70bc943936461.jpg" 
style="width: 300px; display: block; vertical-align: top; margin: 5px auto; 
text-align: center;">

<p>Five six seven</p>

<img src="http://localhost:5000/uploads/a77381fa354a067ed128bc8fe5cdfc8f85aaedea.jpg" 
style="width: 300px; display: block; vertical-align: top; margin: 5px auto; 
text-align: center;">

<p>Eight nine ten</p>

也许这可以通过正则表达式实现,但我不是专家。

【问题讨论】:

  • 也许使用 html 解析器会更好。
  • 为什么这被标记为 c# 请澄清为什么会出现这种情况。如果没有该指示,即使用 JavaScript,在此处检索 src 属性将是一项简单的任务。
  • 这被标记为 C#,因为我需要用 C# 编写这些东西。需要澄清抱歉。
  • 我在这里提供了一个有点笼统的答案,因为目前尚不清楚如何获取或包含此 HTML,这可能会产生更好的答案。
  • 请注意,您所拥有的img 元素的这个 HTML 似乎也无效,因为“一个 img 元素必须具有 alt 属性,除非在某些情况下。” - 确保您满足这些条件。在规范的解释中有一个链接:w3.org/TR/2012/WD-html-markup-20120329/img.html

标签: c# regex


【解决方案1】:

使用此问题获取 src Regular Expression to get the SRC of images in C# 然后使用这个作为基本名称new FileInfo(path).Name versus Path.GetFileName(path)

所以它是“一种重复”,但结合了两个问题代码来完成你想要的。一般来说,使用正则表达式来解析 HTML 并不是最好的主意,HTML 可以构造然后放置在页面上的方式有很多,请务必测试您的所有定义。

【讨论】:

【解决方案2】:

我推荐使用 html 敏捷包 https://html-agility-pack.net/,而不是使用正则表达式

【讨论】:

    【解决方案3】:

    您可以使用以下正则表达式来捕获带有图像元素扩展名的文件名

    <img\s+.*?src=['\"]?.*\/(.*?\..{3,4})['\"]?
    

    您也可以在以下link 中查看其匹配项

    【讨论】:

      【解决方案4】:

      您可以使用这个正则表达式模式:([^\/]+jpg)

      您可以查看:link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-23
        • 2011-11-20
        • 2014-06-16
        • 1970-01-01
        • 1970-01-01
        • 2014-07-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多