python正则表达式匹配具有多个定界符的字符串中的六位数字

时间:2018-09-25 23:08:22

标签: python regex python-3.x

我想找到所有六个数字,多个逗号,连字符和空格分隔,但不低于分数。

例如:

string = "OS 2.2.0_cvr_test_648052_02 & v1.2.1_ab1_03, xyz-800239,test-434523,456345 902384"

必需的输出:[800239,434523,456345,902384]

输出不应包含带有“下划线”的六位数。在上面的字符串中,不应打​​印数字“ 648052”。

能帮我找到更好的解决方案吗?

我以re.findall('[-, ][0-9]{6}', string)为名,但它也显示分隔符。

2 个答案:

答案 0 :(得分:0)

您可以使用后向功能:

import re
string = "OS 2.2.0_cvr_test_648052_02 & v1.2.1_ab1_03, xyz-800239,test-434523,456345 902384"
new_string = list(map(int, re.findall('(?<=[^_])\d{6}', string)))

输出:

[800239, 434523, 456345, 902384]

答案 1 :(得分:0)

类似的事情应该起作用(?<=[-, ]|^)\d{6}(?=[-, ]|$)

https://regex101.com/r/BtOfJ5/1