我有一个类似于下面显示的文件 - 是否可以执行正则表达式
text1 769,230,123
text2 70
text3 213,445
text4 24,356
text5 1,2,4
给出如此处所示的输出?
['769','230','123']
['70']
['213','445']
我目前的代码如下:
with open(filename,'r') as output:
for line in output:
a = line
a = a.strip()
#regex.compile here
print regex.findall(a)
任何帮助或方向对我都非常有用。谢谢
答案 0 :(得分:1)
看起来您可以找到所有数字序列:
regex = re.compile("[ ,]([0-9]+)")
答案 1 :(得分:1)
以下正则表达式将从该行中提取逗号分隔的数字,然后我们可以应用split(',')
以提取数字:
import re
line = "text1 769,230,123"
mat = re.match(r'.*? ([\d+,]+).*', line)
nums = mat.group(1).split(',')
for num in nums:
print num
<强>输出强>
769
230
123
答案 2 :(得分:1)
以下内容适合您。
>>> import re
>>> regex = re.compile(r'\b\d+\b')
>>> with open(filename, 'r') as output:
... for line in output:
... matches = regex.findall(line)
... for m in matches:
... print m
输出
769
230
123
70
213
445
24
356
1
2
4
答案 3 :(得分:0)
你不需要正则表达式。只需line.split(',')
。
答案 4 :(得分:0)
假设text#
与逗号分隔值之间总共有2个空格。这是将分离的值提取到数组中的简单方法
list = []
with open(filename,'r') as output:
for line in output:
line = line.strip(' ')
list.append(line[1].strip(','))
这将产生一个嵌套列表
print list[0] #['769','230','123']
print list[1] #['70']
print list[2] #['213','445']