鉴于这一行:
[4] Item status: FAILED
我想使用最有效和可维护的方式(可能使用正则表达式)来检查这一行是否正确"正确"。这里,正确性意味着
"Item status: "
始终存在:
后报告的我正在寻找一种方法以某种方式将变量注入正则表达式,以解释第3点。
答案 0 :(得分:3)
我认为你想使用|
(“或”)选项,而不是“注入变量”:
regex = re.compile(r"""
\[\d+\]\s+ # a number in square brackets
Item\ status:\s+ # followed by Item status:
(?:FAILED|PASSED|NOT EXECUTED) # then one of these three options
$ # and nothing further
""", re.VERBOSE)
演示:https://regex101.com/r/gQ6pW4/2
如果列表可以变量,您可以使用str.format
将'|'.join(options)
插入相应的组中。