我有一个字符串列表如下:
my_list = ['array("i", [12694499, 12855016, 123457])',
'array("i", [12694499, 12865016, 123457])',
'array("i", [12694499, 12855016])',
'array("i", [12699749, 12877477])',
'array("i", [12828285, 12868277])',
'array("i", [-1])',
'array("i", [-1])',
'array("i", [-1])']
我是一个在python中使用正则表达式的新手,我正在尝试使用re.search来提取括号中的值并用逗号分隔,如下所示:
[12694499, 12855016, 123457]
[12694499, 12865016, 123457]
[12694499, 12855016]
[12699749, 12877477]
[12828285, 12868277]
[-1]
[-1]
[-1]
我试过这个:
for value in my_list:
coords = re.search(r"\[[0-9]+,\s[0-9]+\]", value)
print(coords)
但我得到了这个
None
None
None
None
None
None
None
None
我知道我可以使用split()来获得数字,但我真的很想了解RE在python中是如何工作的。
任何建议都将不胜感激!
1条答案
按热度按时间oyxsuwqo1#
您的代码实际上与第3、第4和第5项匹配。
但是,如果要获得所有匹配项,可以使用可选的连字符
-?
,也可以使用逗号和数字(?:,\s-?[0-9]+)*
重复该部分然后,首先检查
re.search
的结果,并使用.group()
打印该值产出
参见Python demo。