Skip to main content
 首页 » 编程设计

python之如何使 re.split() 具有包容性

2025年05月04日12itcoder

我有以下内容:

>>> x='STARSHIP_TROOPERS_INVASION_2012_LOCDE' 
>>> re.split('_\d{4}',x)[0] 
'STARSHIP_TROOPERS_INVASION' 

我如何获得包含年份的信息?例如:

STARSHIP_TROOPERS_INVASION_2012 

请注意,有数万个标题,我需要为每个标题拆分年份。我不能在这里执行普通的 python split()。

请您参考如下方法:

A more straightforward solution将使用 re.search()/MatchObject.end() :

m = re.search('_\d{4}', x) 
print x[:m.end(0)] 

如果你想坚持使用split(),你可以use a lookbehind :

re.split('(?<=_\d{4}).', x) 

(即使年份位于字符串的末尾也能正常工作,因为 split() 会返回一个包含原始字符串的数组,以防找不到分隔符。)