如何:在一长串字符串中从一个字符串到另一个字符串

2024-06-09 13:33:21 发布

您现在位置:Python中文网/ 问答频道 /正文

想象一下一长串字符: “AATTATCTATATTATTGAATGGGGCCCCATTTCCCAAATC….”

我定义了4个字符串:

"AAT"

"ATG"
"TTT"
"ATC"

我的任务是找到长字符串中每个字符串“AAT”的“终点”。我的终点是最后三个字符串“ATG”、“TTT”、“ATC”,这意味着我需要找到起始位置“AAT”到结束位置的索引,可以是“ATG”、“TTT”或“ATC”。有人叫我按三步走,但我不知道怎么做。在

我试过这样做:

^{pr2}$

,它将打印字符串“ATG”在我的文本文件中的位置。我不知道如何从这里继续前进。我想我也可以找到其他字符串的位置,但是如何创建一个从“ATG”开始并停止直到它遇到某个端点的函数??在

希望这是可以理解的


Tags: 函数字符串定义端点字符文本文件atg想象
1条回答
网友
1楼 · 发布于 2024-06-09 13:33:21

您可以使用正则表达式执行此操作:

>>> import re
>>> s = "AATTAATCTATATATTGAAATGGGGCCCCAATTTTCCCAAATC ...."
>>> [(m.start(), m.end()) for m in re.finditer('AAT.*?(?:ATG|TTT|ATC)', s)]
[(0, 8), (18, 34)]

在芬代尔搜索正则表达式的多个非重叠匹配项,并为每个匹配项返回MatchObject。match对象的start()和end()方法提供匹配字符串的开始和结束索引。在

regex将搜索AAT,然后搜索最早出现的ATG、TTT或ATC。在

如果在程序运行之前不知道开始和结束字符串,则可能需要动态构造正则表达式-这非常简单:

^{pr2}$

相关问题 更多 >