Python:正则表达式删除前面带字母的零?

时间:2012-09-29 02:49:39

标签: python regex

为以下房间号码提供正则表达式语句时遇到一些麻烦:

C001B --> C1B //remove "leading" zeros after first set of letters
C100B --> C100B
CB001B --> CB1B //remove "leading" zeros after first set of letters
001B --> 1B //remove leading zeros

基本上,删除所有前面没有数字的零?

2 个答案:

答案 0 :(得分:2)

嗯,为了匹配这样的零,你可以使用负面的后观,例如(?<![^a-zA-Z]),以确保匹配区域之前没有任何字母。通过在匹配之前插入它,它将确保前面的任何内容与包含的模式不匹配,这里[^a-zA-Z],它也计算一行开头的匹配。

re.sub("(?<![^a-zA-Z])0+","",number)

答案 1 :(得分:0)

查找'ABC000''000'等所有模式,并删除'0'

return re.sub( "([^0-9]+|^)0+", r'\1', raw )