Regex只匹配一次(不重复)

  • 本文关键字:一次 Regex python regex
  • 更新时间 :
  • 英文 :


我面临这个小正则表达式问题(标志:全局(

[-+*&|]

它的意思是匹配,例如这个表达式中的+,但不是++或--:

12 + 47 - i++ / --foo

然而,它与它们都匹配。

我知道这个解决方案,但它很难看(需要重复该组三次(:

[^-+*&|][-+*&|][^-+*&|]

或者

(?<![-+*&|])([-+*&|])(?![-+*&|])

有更好的(更短、更可读的(解决方案吗?

这对我来说似乎可读性更强,但不是很好。

(?<![+-*/&|])(?P<operator>[+-*/&|])(?!(?P=operator))

匹配:

+ ++ - -- * ** / // & && | ||
^    ^    ^    ^    ^    ^
[-+*&|]{1,3}

您可以使用{min,max}来定义最小和最大出现次数。

最新更新