python - 如何在 Python 中编写正则表达式以删除字符串中间数字的前导零

标签 python regex

我有一个由两个字母后跟一个数字组成的字符串,我需要删除所有字母以及数字中的前导零。

例如:在测试字符串U012034中,我要匹配U012034开头的0 .

到目前为止,我有 [^0-9] 来匹配任何不是数字的字符,但我不知道如何删除数字中的前导零。

我知道我可以使用 int(re.sub("[^0-9]", "", test_string) 之类的多个步骤执行此操作,但我需要完成此过程在一个正则表达式中。

最佳答案

你可以使用

re.sub(r'^\D*0*', '', text)

regex demo . 详情

  • ^ - 字符串开始
  • \D* - 任何零个或多个非数字字符
  • 0* - 零个或多个零。

Python demo :

import re
text = "U012034"
print( re.sub(r'^\D*0*', '', text) )
# => 12034

如果第一个数字后面还有更多文字,请使用

print( re.sub(r'^\D*0*(\d+).*', r'\1', text) )

this regex demo . 详情:

  • ^ - 字符串开始
  • \D* - 零个或多个非数字
  • 0* - 零个或多个零
  • (\d+) - 第 1 组:一个或多个数字(使用 (\d+(?:\.\d+)?) 匹配浮点或整数值)
  • `.* - 字符串的其余部分。

替换的是第 1 组的值。

关于python - 如何在 Python 中编写正则表达式以删除字符串中间数字的前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68168540/

相关文章:

用于剥离由分隔符分隔的最后 2 列数据的正则表达式

c++ - 如何使用 boost 从多个 regex-en 组合一个 regex

python - 如何获取字符串中同一字符多次出现的索引?

python - 在 python 2.7 中使用 PI

基于数组的 PHP 路由,如何将 * 匹配到任何东西

python libtorrent save_state

python - SQLAlchemy、FreeTDS 和 MSSQL DBAPI 错误 : Conversion between 47 and -1 datatypes is not supported

python - 被正则表达式难住了

Python:追加列表实际上并没有追加它?

python - 检查目标 : expected dense_3 to have shape (3, 时出错)但得到形状为 (1,) 的数组