首页 > 解决方案 > python正则表达式匹配具有多个分隔符的字符串中的六位数字

问题描述

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

例如:

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 asre.findall('[-, ][0-9]{6}', string)但它也打印分隔符。

标签: pythonregexpython-3.x

解决方案


您可以使用lookbehind:

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]

推荐阅读