Python 使用正则匹配字符集中的所有字符

3 投票
2 回答
1672 浏览
提问于 2025-04-18 01:10

我想要检查一个字符串里的所有字符是否都在一个特定的字符集合里。如果字符串中的任何一个字符不在这个集合里,那么就不算匹配。我现在使用的是字符集合,想要确保字符串里的所有字符都能匹配这个集合。但是如果字符串里有额外的字符,检查就会通过。

我该怎么解决这个问题呢?

>>> re.search(r'[a-z]*','abcA')  
<_sre.SRE_Match object at 0x026DBBB8> ===> Should FAIL
>>> re.search(r'[a-z]*','abc')
<_sre.SRE_Match object at 0x026DBBF0>

2 个回答

2

re.search(r'^[a-z]*$','abcA') 这个代码可以解决问题。这里的 ^ 表示字符串的开始,而 $ 则表示字符串的结束。

7

把正则表达式固定住,这样可以限制它的匹配范围。比如说,r'^[a-z]*$' 这个表达式的意思是:只匹配由小写字母组成的字符串,且这个字符串可以是空的。

撰写回答