在python中的列表中查找字符串

2024-10-01 17:31:18 发布

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

我有一个嵌套列表,如下所示:

[['asgy200;f','ssll100','   time is: 10h:00m:12s','xxxxxxx','***','','asgy200;f','frl5100','   time is: 00h:00m:05s','ooo']]

'***'是我的分隔符。我想用python分隔列表中的所有秒。 首先,我想用正则表达式来分隔有time is:字符串但行不通的行!你知道吗

我不知道该怎么办。你知道吗

谢谢


Tags: 字符串列表timeis分隔符oooxxxxxxxasgy200
3条回答
import re
x=[['asgy200;f','ssll100','time is: 10h:00m:12s','xxxxxxx','***','','asgy200;f','frl5100','time is: 00h:00m:05s','ooo']]
s=str(x)
print re.findall(r"(?<=time is)\s*:\s*[^']*:(\d+)",s)                          

输出:['12', '05']

你可以试试这个。你知道吗

您可以使用look-ahead regex(r'(?<=time is\:).*'):

>>> [i.group(0).split(':')[2] for i in [re.search(r'(?<=time is\:).*',i) for i in l[0]] if i is not None]
['12s', '05s']

你可以把它们转换成int:

>>> [int(j.replace('s','')) for j in sec]
[12, 5]

如果需要秒字符串,请不要在替换后将其转换为int:

>>> [j.replace('s','') for j in sec]
['12', '05']

你也可以使用捕获组。如果秒数正好等于00,它就不会打印秒数

>>> lst = [['asgy200;f','ssll100','time is: 10h:00m:12s','xxxxxxx','***','','asgy200;f','frl5100','time is: 00h:00m:05s','ooo']]
>>> [i for i in re.findall(r'time\s+is:\s+\d{2}h:\d{2}m:(\d{2})', ' '.join(lst[0])) if int(i) != 00]
['12', '05']
>>> lst = [['asgy200;f','ssll100','time is: 10h:00m:00s','xxxxxxx','***','','asgy200;f','frl5100','time is: 00h:00m:05s','ooo']]
>>> [i for i in re.findall(r'time\s+is:\s+\d{2}h:\d{2}m:(\d{2})', ' '.join(lst[0])) if int(i) != 00]
['05']

相关问题 更多 >

    热门问题