REGEX使字符串从特定点开始

时间:2016-07-12 12:01:09

标签: python python-2.7 python-3.x

我必须使用正则表达式拆分字符串: 说Nikolaus Kopernikus -> 1473-1543

我尝试了以下操作,但它只给了我一个没有->

的列表

我需要的是1473-1543年,最好是列表['1473','1543']

import re

print ( re.split(r'->', 'Nikolaus Kopernikus -> 1473-1543'))

我想要一个正常的表达式,使字符串从特定的符号开始,非常感谢!

2 个答案:

答案 0 :(得分:2)

使用str.split

'Nikolaus Kopernikus -> 1473-1543'.split('->')[1].strip().split('-') # ['1473', '1543']

来自文档:

  

使用sep作为分隔符字符串,返回字符串中的单词列表。如果给出maxsplit,则最多完成maxsplit拆分(因此,列表最多将包含maxsplit + 1个元素)。如果未指定maxsplit或-1,则对分割数量没有限制(所有可能的分割都会生成)。

注意:我在分割后使用str.strip删除了空格。

答案 1 :(得分:2)

如果您想使用正则表达式:

import re
re.match('.*->[^\d]*(\d+)-(\d+)','Nikolaus Kopernikus -> 1473-1543').groups()
#output: ('1473', '1543')

如果您需要列表而不是元组,请使用list函数。