Python正则表达式分组帮助

Python正则表达式分组帮助,python,regex,Python,Regex,我试图将两个字段合并到一个findall中,并打印所有结果 a = ['Name: Donut, PUL: 21392132, Quantity: 7, Name: Red Donut, PUL: 25, Quantity :25' ] d = .join(re.findall(r'\bquantity.(.*)+\bname.(.*)', a) print(d) e = re.findall(r'\bname.(.*)'

我试图将两个字段合并到一个findall中,并打印所有结果

a = ['Name: Donut,
      PUL: 21392132,
      Quantity: 7,
      Name: Red Donut,
      PUL: 25,
      Quantity :25'
      ]

d = .join(re.findall(r'\bquantity.(.*)+\bname.(.*)', a)
print(d)
e = re.findall(r'\bname.(.*)', a)         
预期结果应与以下类似

25 x红色甜甜圈 7个甜甜圈

我可以使用下面的命令分别提取名称或数量

e = re.findall(r'\bname.(.*)', a)     
然而,当我尝试将它们连接在一起时,我总是得到空的结果或错误消息


如有任何协助,将不胜感激

首先将数据重组为多行字符串,然后为数量和名称创建模式(同时设置re.I,即re.IGNORECASE标志),反转结果,最后将它们合并为一个结果字符串:

import re

a = """
Name: Donut,
PUL: 21392132,
Quantity: 7,
Name: Red Donut,
PUL: 25,
Quantity: 25
"""

quantities_pattern = re.compile(r"\bquantity:\s(\d+)", re.I)
quantities_reverse = re.findall(quantities_pattern, a)[::-1]
print(quantities_reverse)

names_pattern = re.compile(r"\bname:\s(\w+\s?\w*),", re.I)
names_reverse = re.findall(names_pattern, a)[::-1]
print(names_reverse)

lines = []
for qty, name in zip(quantities_reverse, names_reverse):
    lines.append(qty + ' x ' + name + ' ')

print(''.join(lines))
结果:

['25', '7']
['Red Donut', 'Donut']
25 x Red Donut 7 x Donut 
或者,如果希望逐行显示结果:

for line in lines:
    print(line)
返回:

25 x Red Donut 
7 x Donut 

首先将数据重组为多行字符串,然后为数量和名称创建模式(同时设置re.I,即re.IGNORECASE标志),反转结果,最后将它们合并为一个结果字符串:

import re

a = """
Name: Donut,
PUL: 21392132,
Quantity: 7,
Name: Red Donut,
PUL: 25,
Quantity: 25
"""

quantities_pattern = re.compile(r"\bquantity:\s(\d+)", re.I)
quantities_reverse = re.findall(quantities_pattern, a)[::-1]
print(quantities_reverse)

names_pattern = re.compile(r"\bname:\s(\w+\s?\w*),", re.I)
names_reverse = re.findall(names_pattern, a)[::-1]
print(names_reverse)

lines = []
for qty, name in zip(quantities_reverse, names_reverse):
    lines.append(qty + ' x ' + name + ' ')

print(''.join(lines))
结果:

['25', '7']
['Red Donut', 'Donut']
25 x Red Donut 7 x Donut 
或者,如果希望逐行显示结果:

for line in lines:
    print(line)
返回:

25 x Red Donut 
7 x Donut 

有一个语法错误
input()
是一个无法
input[]
查看的函数,它是您要查找的吗?存在语法错误
input()
是一个您无法
input[]
查看的函数,它是您想要的吗?