原谅这个简单化的问题,但我已经阅读了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)
提前致谢.
您需要正则表达式来使用整个字符串(如果不能,则需要失败). re.match隐式地在字符串的开头添加一个锚点,你需要在结尾添加一个:
re.match(r"[AUGC]+$", string_to_check)
Run Code Online (Sandbox Code Playgroud)
还要注意+,它会重复匹配你的字符集(因为,重点是消耗整个字符串)