Python 正则表达式以避免字符串中较早的字符

Python regex to avoid a character earlier in the string

我想使用正则表达式来查找确切的字符串,但如果它是评论的一部分,则不会,如 // 所指定。

例如,在字符串中:

hello apple apples // eat an apple

它应该匹配第一个苹果而不是第二个或第三个。

所以,我认为正则表达式应该是这样的。它会找到周围有单词中断的字符串,但如果 // 在它后面则不会:

(?<!\/\/)\bapple\b

在这种情况下,负向后视的问题在于它只会紧挨着单词查找。我需要它向后看得更远,以确保注释符号不存在于字符串的前面。

此模式将在第一个 sub-pattern

中捕捉到您想要的内容
\/\/.*|\b(apple)\b

Demo

我认为您只需要转义对后向断言的评论;

    (?<!\/\/)\b(apple)\b ## doesn't work, don't use this.

Try it -- regex101.com