我需要从网页中提取的数据由特定注释分隔:<!--data-->
。
我使用这个表达式:<!--data-->.+?<!--data-->
ad它运行正常。
但也许有一种方法可以在字符串的开头和结尾处获得没有html注释的文本?
在html代码中查找img标签时我也需要这个,但结果shuld只包含图片的链接。
这可以包含在正则表达式中吗?
答案 0 :(得分:0)
请参阅此主题以了解如何使用正则表达式解析html:Regex match open tags except xhtml self contained tags
答案 1 :(得分:0)
如果你想要在括号( )
中包含要捕获的正则表达式的一部分,你可以用$ 1,$ 2等检索捕获的字符串。
一般来说,使用正则表达式解析HTML是一个非常糟糕的主意。看到这个答案: RegEx match open tags except XHTML self-contained tags
答案 2 :(得分:0)
如果要排除这些内容,请在所需部分周围放置括号,然后使用捕获组或使用外观断言。
解决方案1:
<!--data-->(.+?)<!--data-->
您的结果在第1组中。您如何获取此捕获组的内容取决于您的语言。您应该将此信息添加到您的问题中。
解决方案2:
(?<=<!--data-->).+?(?=<!--data-->)
仅匹配.*?
定义的内容。只有当你的语言支持看后面并向前看断言时才能工作。
解决方案3:
使用Html解析器。这可能是您的最佳解决方案。因为Html支持嵌套标记,并且不能可靠地匹配那些具有正则表达式的标记。
如果你告诉我们你使用的语言,你可以使用这种语言的解析器得到一个很好的答案。