Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的Wilcard匹配子字符串_Python - Fatal编程技术网

Python中的Wilcard匹配子字符串

Python中的Wilcard匹配子字符串,python,Python,我是Python的新手,不知道如何从字符串中获取与通配符条件匹配的子字符串。 我正在尝试从以下字符串获取时间戳: sdc4-251504-7f5-f59c349f0e516894fc89d2686a0d57f5-1360922654.97671.data 我只想从字符串中取出1360922654.97671部分。 请提供帮助。如果点和破折号在字符串中有其特定的功能,您可以使用: >>> s = "sdc4-251504-7f5-f59c349f0e516894fc89d268

我是Python的新手,不知道如何从字符串中获取与通配符条件匹配的子字符串。 我正在尝试从以下字符串获取时间戳:

sdc4-251504-7f5-f59c349f0e516894fc89d2686a0d57f5-1360922654.97671.data
我只想从字符串中取出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

稍微少一些字符,仅在字符串的最后一部分是.data或另一个5个字符的字符串时才起作用。

因为您提到了通配符,所以可以重新使用


这些字符串是否遵循一套格式?是的,字符串遵循something-something-something-REQDATA.something-heh,我正在为re模块+1赛跑,以便首先到达那里!谢谢,这是一个更通用的解决方案。哇,这是一个很快很好的答案。它解决了我的问题。谢谢Python真的非常强大。
>>> s = "sdc4-251504-7f5-f59c349f0e516894fc89d2686a0d57f5-1360922654.97671.data"
>>> s.split('-')[-1][:-5]
'1360922654.97671'
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']