Python正则表达式捕获字符串中的多个部分
我的字符串的格式总是Python正则表达式捕获字符串中的多个部分,python,regex,Python,Regex,我的字符串的格式总是track-a-b,其中a和b是整数。 例如: track-12-29 track-1-210 track-56-1 如何在python中从这些字符串中提取a和b?您将希望使用re.findall()捕获组: results = [re.findall(r'track-(\d+)-(\d+)', datum) for datum in data] 您需要将re.findall()用于捕获组: results = [re.findall(r'track-(\d+)-(\d+)
track-a-b
,其中a
和b
是整数。例如:
track-12-29
track-1-210
track-56-1
如何在python中从这些字符串中提取
a
和b
?您将希望使用re.findall()
捕获组:
results = [re.findall(r'track-(\d+)-(\d+)', datum) for datum in data]
您需要将
re.findall()
用于捕获组:
results = [re.findall(r'track-(\d+)-(\d+)', datum) for datum in data]
如果只是一个字符串,我将使用split:
>>> s = 'track-12-29'
>>> s.split('-')[1:]
['12', '29']
如果它是一个多行字符串,我会使用相同的方法
>>> s = 'track-12-29\ntrack-1-210\ntrack-56-1'
>>> results = [x.split('-')[1:] for x in s.splitlines()]
[['12', '29'], ['1', '210'], ['56', '1']]
如果只是一个字符串,我将使用split:
>>> s = 'track-12-29'
>>> s.split('-')[1:]
['12', '29']
如果它是一个多行字符串,我会使用相同的方法
>>> s = 'track-12-29\ntrack-1-210\ntrack-56-1'
>>> results = [x.split('-')[1:] for x in s.splitlines()]
[['12', '29'], ['1', '210'], ['56', '1']]
到目前为止你有代码吗?你试过什么?到目前为止你有代码吗?您尝试过什么?是否有理由首选
split
?@blue\u zing avoid正则表达式容易出错,使用字符串方法(str.split
等)通常更快、更容易理解。是否有理由首选split
?@blue\u zing avoid正则表达式容易出错并使用字符串方法(str.split
等)通常更快,更容易理解。