具有正则表达式的字母的复合出现次数

时间:2016-01-07 19:14:08

标签: python regex

我需要字符串的正则表达式,其中包含复合连续字母数 A 。复合数字表示不是素数的字母。因此 AAAAA 无效且 AAAAAAAAA 有效。 我唯一的解决方案是:

import re
Regex_Pattern = r'(A{2,})\1+'
print(str(bool(re.search(Regex_Pattern, raw_input()))).lower())

但它不适用于9个字母 A 的出现。你能救我吗?

1 个答案:

答案 0 :(得分:2)

您需要指定必须匹配整个字符串。因此,请添加^$

>>> [i for i in range(20) if re.search(r'^(A{2,})\1+$', 'A' * i)]
[4, 6, 8, 9, 10, 12, 14, 15, 16, 18]

或使用re.match,您只需要$

>>> [i for i in range(20) if re.match(r'(A{2,})\1+$', 'A' * i)]
[4, 6, 8, 9, 10, 12, 14, 15, 16, 18]