在 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+
- 一个或多个 0
s
([1-9]\d*)
- 第 1 组:一个 non-zero 数字,然后是零个或多个数字
$
- 一行结束。
我正在尝试在 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+
- 一个或多个0
s([1-9]\d*)
- 第 1 组:一个 non-zero 数字,然后是零个或多个数字$
- 一行结束。