因此,我试图创建一个regex子句,在该子句中它可以检测“ ACTG”字符的任意组合,并将其视为有效。而其他所有内容-包括“ ACTG”和其他一些字符的组合均无效。

最终,我将其从while循环中删除,这只是出于测试目的。现在,我相信只要以a,c,t或g开头,就表示它是有效的。

正则表达式中是否有比匹配更适合的功能?

import re
while (True):
    DnaString = str(input('enter your polynucleotide chain code hooblah'))
    if (re.match('([ACTG]+[ACTG]*)', DnaString, flags=0)):
        #if re.search('^ACTG', DnaString) != -1:
            print ("valid chain.")
    else: #(re.search('^[ACTG]+[ACTG]*$', DnaString) == -1):
        print("invalid chain, please check your input.")

    if (DnaString.find("end") != -1):
        print("ohokaybye.")
        break

最佳答案

为什么不只是

if all(c in 'ACGT' for c in DnaString):
    # Do success
else:
    # Do failure

10-02 14:20