我对 Python 完全陌生,不知道如何从字符串中获取与某些通配符条件匹配的子字符串。我正在尝试从以下字符串中获取时间戳:
sdc4-251504-7f5-f59c349f0e516894fc89d2686a0d57f5-1360922654.97671.data
我只想从字符串中取出“ 1360922654.97671 ”部分。请帮忙。
我对 Python 完全陌生,不知道如何从字符串中获取与某些通配符条件匹配的子字符串。我正在尝试从以下字符串中获取时间戳:
sdc4-251504-7f5-f59c349f0e516894fc89d2686a0d57f5-1360922654.97671.data
我只想从字符串中取出“ 1360922654.97671 ”部分。请帮忙。
因为您提到了通配符,您可以使用re
In [77]: import re
In [78]: s = "sdc4-251504-7f5-f59c349f0e516894fc89d2686a0d57f5-1360922654.97671.data"
In [79]: re.findall("\d+\.\d+", s)
Out[79]: ['1360922654.97671']
如果点和破折号在您的字符串中具有其特定功能,则可以使用以下命令:
>>> s = "sdc4-251504-7f5-f59c349f0e516894fc89d2686a0d57f5-1360922654.97671.data"
>>> s.rsplit('.', 1)[0].split('-')[-1]
'1360922654.97671'
一步步:
>>> s.rsplit('.', 1)
['sdc4-251504-7f5-f59c349f0e516894fc89d2686a0d57f5-1360922654.97671', 'data']
>>> s.rsplit('.', 1)[0]
'sdc4-251504-7f5-f59c349f0e516894fc89d2686a0d57f5-1360922654.97671'
>>> s.rsplit('.', 1)[0].split('-')
['sdc4', '251504', '7f5', 'f59c349f0e516894fc89d2686a0d57f5', '1360922654.97671']
>>> s.rsplit('.', 1)[0].split('-')[-1]
'1360922654.97671'
这适用于以下形式的任何字符串:
anything-WHATYOUWANT.stringwithoutdots
>>> s = "sdc4-251504-7f5-f59c349f0e516894fc89d2686a0d57f5-1360922654.97671.data"
>>> s.split('-')[-1][:-5]
'1360922654.97671'
字符稍少,仅适用于字符串的最后一部分.data
或另一个 5 个字符的字符串。