正则表达式:匹配字符串与反转模式在其他模式

时间:2016-04-06 02:23:07

标签: python regex

这是代码:

(?!cxdef\.)trimheader

我希望它匹配任何:'=trimheaderspace' or 'old.trimheader' or 'get trimheader()'等...但 NOT" ... = cxdef.trimheaderspace()"

我不想要一个' cxdef。'在' trimheader'。

之前

它看起来很简单,但代码不起作用。任何想法?

2 个答案:

答案 0 :(得分:2)

您需要使用零宽度负向后视:

>>> def out_match(st):
...     return st if re.search(r'(?<!cxdef\.)trimheader', st) else None
... 
>>> out_match('=trimheaderspace')
'=trimheaderspace'
>>> out_match('cxdef.trimheaderspace()')
>>> 

答案 1 :(得分:0)

我找到了我的问题的答案,这里是代码:

(?<!cxdef\.)trimheader

我只需在<?之间添加!即可获得负面反馈。除了&#c; cxdef.trimheader&#39;。

之外,它将匹配任何其他内容