在字符串python中,获取字符前后的特定子字符串

2024-06-10 05:14:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把时间从描述字符串中分离出来。 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个描述的首字母 我想找到:,然后在它前面和后面取两个数字,这样我就可以分开时间了

^{pr2}$

time.rsplit(':', 1)[0]返回:之前的所有数字

time.rsplit(':', 1)[0]返回:之后的所有数字

如何定义在:前后只拆分两个数字?这是个好办法吗?使用正则表达式更好,我试过了,但有点复杂?在


Tags: 字符串类型time时间数字descaeswithout
3条回答

How to define to split only two numbers after and before :

对于regex;下面的regex模式匹配精确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)

输出

^{pr2}$

你可以试试re.finditer()

 test = """desc = '08:59 Hudh aes ....' 
 desc = '19:59Aksi jeh....' 
 desc = 'just letters without time'
 desc = '21.19:55Aksi hsue....'
 desc = '256.08:59Aksi mane....'
 """
 pattern = r"\d{2}:\d{2}"
 for m in re.finditer(pattern,test):
    print m.group()

输出将是:

08:59
19:59
19:55
08:59

然后从这个输出可以很容易地将小时和分钟分开

您可以re.findall()

re.findall(r'([\d.]+):([\d.]+)',desc)

相关问题 更多 >