在lookbehind中具有不同长度“or”的python regex

2024-04-20 11:53:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有很多包含命令的日志。我过滤了所有包含“useradd”的日志,但现在我想对一些误报进行dicard:

  • 。。。/etc/default/useradd。。。在
  • 。。。/man8/用户添加。。。在

问题是我希望看到其中包含假阳性和实命令的行(参见测试用例)。在

我只能像使用日志分析器程序一样使用(一个或多个)python正则表达式,因此没有真正的python程序。 以下是我尝试过的表达方式:

(!/etc/default/|/man8/)useradd # no match
(?<!/etc/default/|/man8/)useradd # look-behind requires fixed-width pattern
(?<!fault/|/man8/)useradd # works, but that's strange

在对其他问题的回答中,regex被改变了,以便可以使用lookahead,但是我不明白这是怎么可能的。在

[编辑:添加了一些测试用例]

^{pr2}$

Tags: no用户命令程序default分析器matchetc