如何匹配html标签

时间:2016-09-30 10:09:14

标签: regex scala

我必须像这样解析字符串:

export function someFunction() {
  console.log('hi')
}

我需要用空字符串替换img标记

foo <img ... > <strong>foo</strong> bar

我已经尝试了

foo <strong>foo</strong> bar

但结果是

<img.*>

我该怎么办?

PS:html字符串格式错误

1 个答案:

答案 0 :(得分:1)

为了匹配SO的尝试,这个答案将有三个部分 *回答你的问题 *官方咆哮 *更清洁的洗液

回答问题

*贪婪,所以它会匹配很多。有两种解决方案可供选择:

1。)*?非贪婪匹配全部 2.)<[^>]+>全部在括号内

咆哮

永远不要使用正则表达式解析HTML。您可能遇到许多子问题错误。还有这篇文章:RegEx match open tags except XHTML self-contained tags

清洁灵魂

使用带有TagSoup https://hackage.haskell.org/package/tagsoup的XML-Parser解析。 下面是一个示例,它允许您使用Scala和tagsoup将HTML视为XML结构:https://github.com/daandi/spOCR/blob/master/src/main/scala/biz/neumann.parser/HTMLParser.scala