我想将时间与描述字符串分开。
desc
可以有这种类型的字符串:
desc = '08:59 Hudh aes ....'
desc = '19:59Aksi jeh....'
desc = 'just letters without time'
desc = '21.19:55Aksi hsue....'
desc = '256.08:59Aksi mane....'
time
包含描述的前 10 个字母
我想找到 :
然后在它之前和之后取两个数字,这样我就可以分割时间
time = ''.join(filter(lambda x: x, desc[0:10].replace(" " , "")))
print "Time:" , time , time.rsplit(':', 1)[0]
time.rsplit(':', 1)[0]
返回 :
之前的所有数字
time.rsplit(':', 1)[0]
返回 :
之后的所有数字
如何定义在 :
前后仅分割两个数字?这是一个好方法吗?使用正则表达式是更好的主意,我尝试过,但有点复杂?
最佳答案
How to define to split only two numbers after and before :
使用正则表达式;以下正则表达式模式匹配完全 2 位数字,后跟一个冒号,然后完全 两位数字(这正是您所要求的):
import re
desc = '21.19:55Aksi hsue....'
m = re.search(r'(\d{2}):(\d{2})', desc)
if m:
hour, min = m.groups()
else:
# no time in desc string
pass
print 'hour = {}, min = {}'.format(hour, min)
输出
hour = 19, min = 55
关于python - python 获取字符串中某个字符前后的特定子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34199673/