我有一个字符串,显示剩余时间:
text = """ 9d 15h left <br />
some other text not important
12h 5m left <br />"""
pattern = "((\d+)d)?.*left <br />"
我想匹配天数,或者9,但是,如果缺少这些天数,我想匹配一个空字符串。这就是我得到的
>>> re.findall(pattern,text)
[('', ''),('', '')]
但我正在寻找的是
>>> re.findall(pattern,text)
[('9d', '9'),('', '')]
答案 0 :(得分:1)
你错过了模式中的空格:
或者:
re.search(r"[ ]+((\d+)d)?.*left <br />", text).groups()
或删除
之前的文本re.search(r"((\d+)d)?.*left <br />", text.strip()).groups()