You may match the time by adding (?::d+)?
pattern to the d+
alternative:
content= "11:20pm"
content = re.findall(r"[^Wd_]+|d+(?::d+)?", content)
print(content) # => ['11:20', 'pm']
See the Python demo and the regex demo.
Note you might want to extend the pattern to also match float values, and if yes, you would need to use r"[^Wd_]+|d+(?:[:.]d+)?"
.
Details:
[^Wd_]+
- one or more letters
|
- or
d+
- one or more digits
(?::d+)?
- an optional sequence of a `:~ and one or more digits.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…