1

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

示例字符串是

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']

4

3 回答 3

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 字符”并将其替换为第一组非数字字符。

于 2012-07-05T18:25:32.787 回答
0

我会这样做:

re.sub(r'0+', '', "AAL000007200100000787777388300000", count=1)
于 2012-07-05T18:26:12.723 回答
0

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

于 2012-07-05T18:33:09.683 回答