Skip to main content
 首页 » 编程设计

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

2025年05月04日20yxwkf

令字符串为 "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']