【问题标题】:Python Regex 'not' to identify pattern within <a></a>Python 正则表达式“不”识别 <a></a> 中的模式
【发布时间】: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 中任何地方出现的模式,除了出现在&lt;a&gt;&lt;\a&gt; 内。

【问题讨论】:

  • 您到底想用[^http://*/s] 完成什么?这没有任何意义。
  • 我试图不匹配位于 http:// 链接内的模式
  • @thinkcool:正则表达式不能可靠地做到这一点,即使你认为这是一个简单的操作。人们不会告诉你如何使用正则表达式,因为正则表达式不是适合这项工作的工具。它被一次又一次地询问,这就是为什么 e-satis 链接了一个标准答案。如果您正在处理 HTML,请使用 HTML 解析器。

标签: python regex hyperlink regex-negation


【解决方案1】:

在同一个句子中包含 regexp 和 HTML 的任何问题的答案是here

在 Python 中,最好的 HTML 解析器确实是Beautilf Soup

如果您想坚持使用正则表达式,您可以尝试使用negative lookbehind 来避免" 处理的任何内容。风险自负。

【讨论】:

猜你喜欢
  • 2018-10-22
  • 2014-04-23
  • 2017-09-19
  • 2019-01-06
  • 2013-02-01
  • 1970-01-01
  • 2011-06-22
  • 2016-07-20
  • 1970-01-01
相关资源
最近更新 更多