我有以下示例字符串,我想只删除一组零。
示例字符串是
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']
答案 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+)(?=.*$)
的匹配替换为空字符串