为以下房间号码提供正则表达式语句时遇到一些麻烦:
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
基本上,删除所有前面没有数字的零?
答案 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 )