【问题标题】:Regex to find <link rel="stylesheet" tag正则表达式查找 <link rel="stylesheet" 标记
【发布时间】:2011-01-11 22:13:01
【问题描述】:

我需要使用正则表达式找到链接标签。 我的 html 文件中有这一行。

<link rel="stylesheet" href="<c:url value="/styles/folders/masterTree.css" />" type="text/css" media="screen, print" />

我需要一个正则表达式来找到它。 这不是家庭作业。我需要这个作为我办公室要求的一部分。

在此先感谢大家。

【问题讨论】:

  • 为什么需要正则表达式?您还关心哪些其他情况?间距是一个问题吗?不匹配的引号是一个问题吗?您需要匹配多少链接?你也想要href 值吗?
  • 感谢您的回复。我需要用字符串值替换上面的行。这是必需的,因为我正在将 html 转换为 pdf。我不需要该值,但我的正则表达式应该只返回整个标签,以便我可以在其上执行 .replace。
  • 请重新考虑使用正则表达式。查看here 获取几个Java html 解析器建议。

标签: java html regex


【解决方案1】:

使用正则表达式解析 html 可能会出现问题,因为大多数 (x)html 不是实际有效的。

由于所有边缘情况,您很快就会破坏它。

您没有指定您正在开发的语言,但如果您在.net 中工作,我建议您考虑使用 HtmlAgilityPack:

【讨论】:

  • 这就是我解决它的方法。html = html.replaceFirst("(]*styles/folders/masterTree.css[^>]*>)",MASTER_TREE_CSS);
【解决方案2】:

You shouldn't。真正的 HTML 解析器是解析 HTML 的唯一可靠方法。

【讨论】:

    猜你喜欢
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多