正则表达式删除第一组零

时间:2012-07-05 18:20:01

标签: python regex

我有以下示例字符串,我想只删除一组零。

示例字符串是

  

AAL000007200100000787777388300000

我想只删除第一组零,并保持其余部分不变。我想最终得到

  

AAL7200100000787777388300000

我已经尝试了以下但是它总是太贪心并且还带有第二组零!

#!/usr/bin/env python3
import re

suffixdrop = re.split("\B0+\B", "AAL000007200100000787777388300000", re.I)
if suffixdrop: #found a suffix here
        print(suffixdrop)

打印结果是

  

['AAL','72','100000787777388300000']

3 个答案:

答案 0 :(得分:4)

\B与单词边界相反,这听起来不像你想要的那样。

如果你想删除非数字字符后的第一组连续0,请尝试:

In [7]: print x
AAL000007200100000787777388300000

In [8]: print re.sub("^(\D+)0+", r"\1", x)
AAL7200100000787777388300000

re.sub("^(\D+)0+", r"\1", x)表示“匹配行的开头,后跟任意数量的非数字字符,后跟任意数量的0个字符”,并将其替换为第一组非数字字符。

答案 1 :(得分:0)

我会这样做:

re.sub(r'0+', '', "AAL000007200100000787777388300000", count=1)

答案 2 :(得分:0)

将正则表达式(?<=^\D*?)(0+)(?=.*$)的匹配替换为空字符串