正则表达式非贪婪完全匹配

时间:2016-12-06 20:54:12

标签: python regex

我使用正则表达式来查找字符串组,而不是完全匹配我的前缀列表。

使用前缀A, B, BB

我可以匹配三组(Aone Atwo, BBone BBtwo, Bone Btwo

Aone
Atwo
BBone
BBtwo
Bone
Btwo

使用正则表达式^prefix[^prefix]

但如果我有字符串

,这会中断
incd
incm    
named   
namem

我的前缀是inc, name

未捕获namem。我能在这做什么的想法?

1 个答案:

答案 0 :(得分:1)

当你"否定"一个带有否定字符类的char,你需要一个除了类中定义的字符之外的字符。更重要的是,你只能否定"否定"这种方式只有一个char,而不是序列字符。

更通用的方法是使用否定前瞻(?!...)

^(?:inc|name)(?!(?:inc|name))

请参阅regex demo

  • ^ - 匹配字符串start
  • (?:inc|name) - 匹配incname
  • (?!(?:inc|name)) - 断言incname后面没有incname文字字符序列