Python:Regex删除字母前面的零?

2024-10-05 14:30:49 发布

您现在位置: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

从本质上讲,去掉所有不带数字的零?在


Tags: ofzeros语句removeregexfirst房间set
2条回答

找到所有的模式,比如'ABC000''000',并消除{}s

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

好吧,为了匹配这样的零,您可以使用一个否定的lookbehind,比如(?<![^a-zA-Z]),以确保匹配的区域前面除了一个字母之外没有任何东西。通过在匹配之前插入它,它将确保紧跟在前面的任何内容都与包含的模式不匹配,这里是[^a-zA-Z],它也计算一行开头的匹配。在

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

相关问题 更多 >