0
我试图编写一个Python匹配组只匹配一个不包含某个字符串的正则表达式。正则表达式匹配组不包含序列
考虑以下字符串:
VOID ALL $-11.20
CANCEL $-6.00
-10.00% LP $-0.25
LOYALTY CARD $-2.50
我想正则表达式匹配和提取-10.00% LP
和LOYALTY CARD
。如果遇到VOID ALL
或CANCEL
,它将拒绝该字符串。
我有以下的正则表达式(?P<discount_reason>(?!(CANCEL|VOID\sALL)).+) [$|£]?-(?P<discount_value>[0-9]*\.[0-9]{2})
其正确提取discount_reason和discount_value群体,但愉快地接受了VOID ALL
和CANCEL
。
我错过了什么?
万分感谢。有用!你能解释它是如何工作的吗?我试图围绕'(?!。* VOID ALL |。* CANCEL)'把头围住。 – CadentOrange
它是真正让它工作的'''锚点,但我也确保''*'在负向视图内的每个交替字符串的前面。它意味着“任何事......然后全无” –