【发布时间】:2011-10-04 14:56:51
【问题描述】:
我正在处理一个问题,编写一个 python 正则表达式'not'来识别 href 标记中的某个模式。
我的目标是用如下所示的 href 链接替换所有出现的 DSS[a-z]{2}[0-9]{2},但不替换出现在 href 标记内的相同模式
当前正则表达式:
replaced = re.sub("[^http://*/s](DSS[a-z]{2}[0-9]{2})", "<a href=\"http://test.com=\\1\">\\1</a>", input)
我需要使用 OR 运算符将这个新的正则表达式添加到我拥有的现有正则表达式中
编辑:
我正在尝试使用正则表达式来进行简单的操作。我想使用正则表达式替换 html 中任何地方出现的模式,除了出现在<a><\a> 内。
【问题讨论】:
-
您到底想用
[^http://*/s]完成什么?这没有任何意义。 -
我试图不匹配位于 http:// 链接内的模式
-
@thinkcool:正则表达式不能可靠地做到这一点,即使你认为这是一个简单的操作。人们不会告诉你如何使用正则表达式,因为正则表达式不是适合这项工作的工具。它被一次又一次地询问,这就是为什么 e-satis 链接了一个标准答案。如果您正在处理 HTML,请使用 HTML 解析器。
标签: python regex hyperlink regex-negation