1

我有一个字符串显示还剩多少时间:

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'),('', '')]
4

1 回答 1

1

您缺少模式中的空格:

任何一个:

re.search(r"[ ]+((\d+)d)?.*left <br />", text).groups()

或者去掉之前的文字

re.search(r"((\d+)d)?.*left <br />", text.strip()).groups()
于 2013-06-01T13:43:23.553 回答