字符串只能包含A,U,G或C.

Hak*_* B. 1 python regex

原谅这个简单化的问题,但我已经阅读了SO问题和Python文档,但仍未能解决这个问题.

如何创建Python正则表达式来测试字符串是否包含ANY,但只包含A,U,G和C字符?字符串可以包含其中一个或所有字符,但如果它包含任何其他字符,我希望正则表达式失败.

我试过了:

>>> re.match(r"[AUGC]", "AUGGAC")
<_sre.SRE_Match object at 0x104ca1850>
Run Code Online (Sandbox Code Playgroud)

但是在字符串的末尾添加一个X仍然有效,这不是我所期望的:

>>> re.match(r"[AUGC]", "AUGGACX")
<_sre.SRE_Match object at 0x104ca1850>
Run Code Online (Sandbox Code Playgroud)

提前致谢.

roi*_*ppi 5

您需要正则表达式来使用整个字符串(如果不能,则需要失败). re.match隐式地在字符串的开头添加一个锚点,你需要在结尾添加一个:

re.match(r"[AUGC]+$", string_to_check)
Run Code Online (Sandbox Code Playgroud)

还要注意+,它会重复匹配你的字符集(因为,重点是消耗整个字符串)