正则表达式匹配可选部分

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


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


一只名叫tom的猫
浏览 184回答 1
1回答

HUX布斯

您缺少模式中的空格:任何一个:re.search(r"[&nbsp;]+((\d+)d)?.*left&nbsp;<br&nbsp;/>",&nbsp;text).groups()或之前的文字re.search(r"((\d+)d)?.*left&nbsp;<br&nbsp;/>",&nbsp;text.strip()).groups()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python