python - 如何在 python 字符串中的子字符串之间查找子字符串?

标签 python string bioinformatics

令字符串为 "AAAGQWERTYUIOPAGCTHJKLAAAGZXCVBNMAGCT"。我想找到 AAAG 和 AGCT 之间的字符串。

我希望输出为 ["QWERTYUIOP","ZXCVBNM"],即字符串列表。

我如何使用正则表达式或类似技术来做到这一点?

我试过了

def find_distances_between_motifs(positions1, positions2, motif_length1):
diff1 = []
diff2 = []
pos2 = 0
flag = 0
for pos1 in range(len(positions1)):
    if pos2 >= len(positions2):
        break
    if flag == 1:
        flag = 0
        pos1 -= 1
    if positions2[pos2] - positions1[pos1] > 30:
        diff1.append(NaN)
        diff2.append(NaN)
        continue
    elif positions2[pos2] - positions1[pos1] < 1:
        pos2 += 1
        diff2.append(NaN)
        flag = 1
    elif pos1 < len(positions1) - 1 and positions1[pos1+1] > positions2[pos2]:
        diff1.append(positions[pos2] - positions[pos1] - motif_length1)
        diff2.append(pos2)
        pos2 += 1
    else:
        continue
return diff1, diff2

我想返回两个数组 - 一个包含基序之间序列长度的位置,第二个包含第二个基序的位置,它将给出先前的距离。

最佳答案

使用正则表达式。 re.findall 与 Lookbehind 和 Lookahead

例如:

import re
s = "AAAGQWERTYUIOPAGCTHJKLAAAGZXCVBNMAGCT"
print( re.findall(r"(?<=AAAG).*?(?=AGCT)", s))

输出:

['QWERTYUIOP', 'ZXCVBNM']

关于python - 如何在 python 字符串中的子字符串之间查找子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52116762/

相关文章:

python - pip 是否可以在不检查 SSL 证书的情况下访问 pypi,或者它甚至可以使用 http 而不是 https?

python - 在 numpy 中四舍五入?

c - 从函数中的二维字符数组中正确读取

bash - 在 UNIX 中重命名 fasta/fastq 文件中的条目

python通过偏移轮廓/缩小多边形来分离圆形粒子

python - 使用分类值时如何保留散点图中轴的顺序?

string - 如何在 Bash 中连接两个字符串而不使用变量?

Python 字符串连接内部细节

python - 根据bp坐标提取fasta序列的一部分

python - str.maketrans 在交互式 python 中可用,但在 python 脚本中不可用?