【问题标题】:How to treat a string a character in regex python如何在正则表达式python中处理字符串一个字符
【发布时间】:2018-03-15 11:41:16
【问题描述】:

我正在使用正则表达式来查找所有出现的单词function,但有一些限制:

  1. 在此之前没有其他 \w
  2. 前面没有.
  3. 前面没有字符串def'。

我已经设法获得了前 2 个:

r'(?<![.\w])function'

如何添加其他条件?

【问题讨论】:

  • 你能给我们一些你想匹配的例子吗?
  • 我改变了措辞,现在更清楚了吗?
  • @YanivHaddad 您是否关心.\wdef 与字符串function 之间是否有空格?
  • 这是用来匹配python代码的。我正在寻找一个不是从任何地方调用的函数,所以我不想匹配任何东西,比如:lib.function,所以这里我不关心空格。它之前的任何普通字符都可能表明这是一个不同的单词,所以这里的空格也无关紧要。但在 def 情况下,我想确保这不是本地定义的函数,所以要注意空格。我不想匹配'def函数'。谢谢@LeonardChalis

标签: python regex


【解决方案1】:

您可以在后面添加另一个否定的lookbehind 来断言左侧不是空格,后跟def

(?&lt;![.\w])(?&lt;!def )function

请注意,这仅匹配单个空格。

也许您可以使用替代方法,首先匹配您不想匹配的内容,然后在一个组中捕获您想要匹配的内容:

def +function|[.\w]function|(function\b)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多