【发布时间】:2018-06-13 08:54:28
【问题描述】:
我需要匹配 HTML 文档文本中的正则表达式。 1) html 格式正确,并且 2) 没有不是 html 标签的 '' 符号。 我遇到的问题是我需要知道原始 html 文档中匹配项的索引,因为我需要将匹配项转换为原始文档中的链接。这意味着我不能只使用漂亮的汤或其他解析器来提取文本。因为该解析结果中的匹配项将具有不同的索引。我也不能只匹配 html 文档,因为一些标签字面上出现在单词的中间,破坏了正则表达式。我需要一种方法: 1) 将已解析文档中的匹配索引映射到原始文档中的位置,或者, 2)让我的正则表达式忽略任何标签并继续搜索。
我正在使用 python re flavor。 我见过这个问题:skip over HTML tags in Regular Expression patterns 但它有所不同,因为 OP 想要忽略标签上下文中的空格。那里的答案没有给我解决方案。
这是一个(非常简化的)示例。有没有办法匹配:
r'(hello world)'
在字符串中:
string = "<p>hell</p>o world"
match.start 会在哪里返回 3?
谢谢!
【问题讨论】:
-
H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝S̨̥̫͎̭ͯ̿̔̀ͅ - 只要问题带有标签
regex和html,就会自动发布。 -
理论上,yes。不确定是否实用。
-
哈哈,好吧,这很暴力。让我在我的正则表达式上试一试,看看我的电脑是否会炸毁。
-
是的,这在更一般的情况下不实用,因为它会破坏转义并导致多次重复。
-
感谢@FHTMitchell 的信任投票:-|