python 中的负正则表达式模式匹配

Negative Regex pattern matching in python

我将以下两行作为输出

   1   ID_1    INSV  enabled   Activated   12.345.67.89
   2   ID_2    SYSB  Disabled  Activated    12.345.67.89

我想匹配不应具有 SYSB 但应已激活的行。我正在写下面的正则表达式

ID_\d+\s+(?!SYSB)\s+\w+\s+Activated

它忽略了 SYSB 行,但它也没有捕获 INSV 行。如何解决这个正则表达式?

你可以像这样使用负前瞻:

^(?!.* SYSB ).* Activated\b

RegEx Demo

正则表达式详细信息:

  • ^: 开始
  • (?!.* SYSB ):如果 " SYSB " 出现在行
  • 的任何位置,则否定前瞻使匹配失败
  • .* Activated\b:在 space 之后的行中的任意位置匹配单词 Activated\b 用于单词边界。