所以我尝试使用正则表达式将字符串的每个匹配项附加到列表中。 这是我的代码。不幸的是,它无法(正常)工作。
seq = 'ABABABBBASHDBDHBEHDBEDH'
Empty_list = []
regex_ex = re.finditer(r'.{3}', seq)
for x in regex_ex:
Empty_list.append(x)
最佳答案
要访问匹配的值,您应该使用 re.Match.group方法:
for x in regex_ex:
Empty_list.append(x.group())
您可以将 for
循环代码替换为列表理解:
Empty_list = [x.group() for x in re.finditer(r'.{3}', seq)]
print(Empty_list)
输出:
['ABA', 'BAB', 'BBA', 'SHD', 'BDH', 'BEH', 'DBE']
如果你想要更紧凑的代码:
list(map(re.Match.group, re.finditer(r'.{3}', seq)))
输出:
['ABA', 'BAB', 'BBA', 'SHD', 'BDH', 'BEH', 'DBE']
关于python - 使用正则表达式(Python)进行循环,在匹配后附加到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60579307/