【发布时间】:2020-06-17 06:51:26
【问题描述】:
我想知道是否可以返回一个匹配列表,其正则表达式模式由一个特定的、连续重复的字符串组成,例如“添加”。这听起来可能微不足道,实际上根据 regexpal.com,它应该像这样简单:“(AGATC)\1+”:
result in regexpal.com。并且使用re.findall,如文档中所述,应该返回一个包含所有这些匹配项的列表。
但是,使用此代码时:
pattern = r"(AGATC)\\1+"
list_of_results = re.findall(pattern, seq_string)
print("list of results:", list_of_results)
其中seq_string 是我正在寻找模式的字符串,并且与正则表达式图像中使用的字符串相同,我得到一个包含模式('AGATC')的 1 个元素的数组。
可以做我需要的吗?也许我忽略了什么?
【问题讨论】:
-
您可以发布示例输入和预期输出
-
@komatiraju033 是的!如果您查看照片,那是示例输入,预期的输出是一个列表,其中突出显示了匹配的字符串,或者如果有多个字符串,则为字符串。我认为通过查看照片更容易理解,而不是在此处复制粘贴实际字符串,因为很难看到其中所需的图案在哪里。
-
您需要将您的正则表达式定义为
pattern = r"(AGATC)\1+"或pattern = "(AGATC)\\1+"。请改用re.finditer([x.group() for x in re.finditer(pattern, s)])(如here 所述)。
标签: python python-3.x regex python-re