RegEx匹配组,不包含序列

时间:2014-01-24 10:12:31

标签: python regex

我正在尝试编写一个Python正则表达式,只有当它不包含某个字符串时才匹配组。

考虑以下字符串:

   VOID ALL               $-11.20
   CANCEL                  $-6.00
   -10.00% LP              $-0.25
   LOYALTY CARD            $-2.50

我希望正则表达式匹配并提取-10.00% LPLOYALTY CARD。如果字符串遇到VOID ALLCANCEL,则会拒绝该字符串。

我有以下正则表达式(?P<discount_reason>(?!(CANCEL|VOID\sALL)).+) [$|£]?-(?P<discount_value>[0-9]*\.[0-9]{2})正确提取discount_reason和discount_value组,但很高兴接受VOID ALLCANCEL

我错过了什么?

1 个答案:

答案 0 :(得分:1)

我对你的第一个命名捕获组做了一些修改:

(?P<discount_reason>^(?!.*VOID ALL|.*CANCEL).*)

演示:http://regex101.com/r/wA5oG9