使用正则表达式将数字从字符串添加到列表中

时间:2018-10-29 18:42:42

标签: python regex python-3.x

简单的代码位:

import re

data = "t3st 11.22.3333.44 bl4h"
r=re.compile(r'([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)')
s=r.search(data)
print (s.group())

这时s.group()=“ 11.22.3333.44”很好。
我想从小数点内的数字组中列出一个列表:

list = ["11","22","3333","44"]

我该如何进行这项工作?谢谢。

2 个答案:

答案 0 :(得分:1)

将模式更改为每个号码一组:

import re

data = "t3st 11.22.3333.44 bl4h"
r=re.compile(r'([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)') # individual groups per numbers
s=r.search(data)
print ( list( s.groups()) )  

输出:

['11', '22', '3333', '44']

Match.groups()返回一个元组,请参见Doku

答案 1 :(得分:0)

为什么不简单地在.上分割输出字符串?

>>> import re

>>> data = "t3st 11.22.3333.44 bl4h"
>>> r=re.compile(r'([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)')
>>> s=r.search(data)
>>> print (s.group().split('.'))
['11', '22', '3333', '44']