用正则表达式替换前导数字

时间:2014-05-16 19:58:12

标签: python regex

我有以下字符串:

s= '<file_name>857173423PARAMOUNT_FUNERAL_IN_BERLIN_AUDIO.mov'

我想如何删除字符串file_name>之后出现的所有前导数字(如果有四个或更多连续数字)。

到目前为止,我有:

>>> re.sub('\d+','', s)
'<file_name>PARAMOUNT_FUNERAL_IN_BERLIN_AUDIO.mov'

但这当然不足以涵盖以下情况:

s = '<file_name>12897878LIONSGATE_T2.mov'

1 个答案:

答案 0 :(得分:2)

Either use a lookbehind

(?<=<file_name>)\d+

Or use a capture group and reference it in your substitution

(<file_name>)\d+
\1

我刚看到&#34; 4位或更多位数&#34;,您可以replace + with {4,}。这将匹配4个以上的数字,默认情况下,正则表达式是#34;贪心&#34;并将继续并匹配您的所有前导数字:

(?<=<file_name>)\d{4,}