我需要确定一个字符串是否由某个重复字符组成,例如eeeee、55555 或!!!。
我知道这个正则表达式 'e{1,15}' 可以匹配 eeeee 但它显然不能匹配 555。我尝试了 [a-z0-9]{1-15} 但它甚至匹配我不需要的字符串,例如 Hello。
解决方案不一定是正则表达式。我只是想不出任何其他方法来做到这一点。
请您参考如下方法:
当且仅当字符串中的所有字符都相同时,字符串才由单个重复字符组成。您可以通过从字符串中构建一个集合来轻松测试它:set('55555') .
当且仅当集合的大小为 1 时,所有字符都相同:
>>> len(set('55555')) == 1
True
>>> len(set('Hello')) == 1
False
>>> len(set('')) == 1
False
如果你也想允许空字符串(设置大小为 0),那么使用 <= 1而不是 == 1 .
