正则表达式是否可以将字符串中任何字符的实例数限制为5?
例如:abacaada因为角色a的5个实例而失败(或匹配)。
为了澄清,我正在寻找任何角色,而不仅仅是'a'。即没有人物可以重复超过x次。
答案 0 :(得分:5)
答案 1 :(得分:0)
这似乎适用于我的一些测试(包括你的情况)
(.*a.*){5}
这当然忽略了空白。如果您希望将此约束为特定单词,则可以将正则表达式包装在\b
的
\b(.*a.*){5}\b
答案 2 :(得分:0)
这对我有用:
(.)(?=(?:.*\1){4})
它与接受的答案非常相似,但使用了积极的前瞻。如果任何特定字符出现至少 5次,它也匹配而不是排除字符串。
对于这个答案和接受的答案,匹配“任何字符”的技巧是使用\1
动态地利用第一个捕获组捕获的内容。
答案 3 :(得分:0)
您可以使用此模式检查字符串:
^(?!.*(.)(?:.*\1){4})
模式细节:
^ # start anchor
(?! # negative lookahead: not followed by
.* # zero or more characters
(.) # a captured character in group 1
(?:.*\1){4} # some character and the captured character repeated 4 times
)