首页 > 解决方案 > 测试python中的字符串输入是否包含正确格式的正确字符

问题描述

抱歉,如果以前有人问过这个问题,我似乎无法在任何地方找到答案。

所以我有一个 DNA 序列分析程序的用户输入,我想检查输入是否实际上是一个序列,即它包含 A、C、T、G 或 a、c、t、g。

我曾想过实现一个正则表达式,如果找到正确的格式,re.search 将返回 True。然后如果为假,我可以再次要求输入等。像这样:

input = "ATGGCAAT"
>>True

input = "atg"
>>True

input = "AATG!4"
>>False

input = "this input contains all the char but is in the wrong format"
>>False

我还考虑过使用与正确格式以外的任何内容相匹配的负面展望。

但我似乎无法正确处理。任何帮助将不胜感激!感觉自己在绕圈子!

标签: pythonregex

解决方案


您需要检查字符串是否包含小写或大写的 ACTG,并且仅包含它们,因此您将表达式锚定在行的开头和结尾:

import re
re.match("(?i)^[ACTG]+$", input)

推荐阅读