python - 使用正则表达式(Python)进行循环,在匹配后附加到列表

标签 python regex list for-loop

所以我尝试使用正则表达式将字符串的每个匹配项附加到列表中。 这是我的代码。不幸的是,它无法(正常)工作。

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/

相关文章:

python - 我如何只获得每组新的唯一值?

python - 如何在 Python 中将混合数据类型列表转换为数据框

python - 将字典键替换为列表中的值

c# - 将列表数据添加到文本文件

java - 使用包含括号的列表将特定括号(左括号、右括号)存储在堆栈中

python - 有没有比 Python 的 strftime 更快的替代方法?

python - 将二维数组读入Python的简单方法

python - 在Python中使用re包将句子分成子句

python 正则表达式查找和散列用户名

regex - Visual Studio 使用带有结束行正则表达式 ($) 的查找/替换将文本附加到行尾