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在这里是可以工作的)谢谢,我一直在考虑负正则表达式,但没能做到。它似乎工作得很好,不过我还需要一些进一步的测试。