Python 将句子精确匹配4次

Python 将句子精确匹配4次,python,regex,Python,Regex,我有这个图案 Calibration attempts: 0 Successful calibrations: 0 Calibration attempts: 0 Successful calibrations: 0 我需要一个正则表达式,它会和这个完全一样。这根本不应该匹配: Calibration attempts: 1 Successful calibrations: 0 Calibration attempts: 0 Su

我有这个图案

    Calibration attempts: 0
    Successful calibrations: 0
    Calibration attempts: 0
    Successful calibrations: 0
我需要一个正则表达式,它会和这个完全一样。这根本不应该匹配:

    Calibration attempts: 1
    Successful calibrations: 0
    Calibration attempts: 0
    Successful calibrations: 0
到目前为止,我只想到了这个,但它看起来很糟糕

(.*Calibration attempts: 0\n.*Successful calibrations: 0\n.*Calibration attempts: 0\n.*Successful calibrations: 0.*)
这应该有效:
(^[\t]+(校准|成功| |尝试|校准)+:0$\n?{4}

查看regex101.com,您可以在那里进行测试。 我测试了此案例是否不匹配任何不是“0”的内容


干杯。

为什么不使用
\s+
(用于一个或多个空格)而不是
*
(匹配所有空格)。您可以通过匹配前半部分两次来缩短它,但除了此之外,没有什么可以做的:
^(校准尝试:0\n\s+成功校准:0\n\s*?){2}$
@Papooch在验证我得到的响应后,我编辑了模式。是否可以使用包括换行符在内的解决方案?编辑:我想到了这个,看起来它可以工作:^(\s+校准尝试:0\n\s+成功校准:0\n\s*?){2}$如果你想要一个精确的匹配,为什么不直接使用
==
?@Nick我正在使用这个正则表达式作为robot框架关键字中的参数之一,很抱歉用python标记误导你(虽然从技术上讲Python在这里是可以工作的)谢谢,我一直在考虑负正则表达式,但没能做到。它似乎工作得很好,不过我还需要一些进一步的测试。