因此,我试图创建一个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