在 Python 中使用 Regex 获取数字的和平

Get peace of number using Regex in Python

我正在尝试在 Python 中使用正则表达式获取数字的一部分,我想收集 0(零)数字之后的数字序列,如下所示:

S_9900002127
S_9900000719
S_9900008012

所以,在上面的这个例子中,我想得到:2127, 719 and 8012,我已经完成了正则表达式:

r'(_9(\d*)[.^0](\d*))' 

得到第二组Regex:[2],但结果是:2127, 719 and 12.

看第三个忽略数字 8 因为 0(零)。

谁能帮我得到正确的结果2127, 719 and 8012 ???

您可以使用

import re
text = r"""S_9900002127
S_9900000719
S_9900008012"""
print( re.findall(r'0+([1-9]\d*)$', text, re.M) )
# => ['2127', '719', '8012']

参见Python demo and the regex demo详情:

  • 0+ - 一个或多个 0s
  • ([1-9]\d*) - 第 1 组:一个 non-zero 数字,然后是零个或多个数字
  • $ - 一行结束。