验证单词中给定字母的数量(重复和顺序无关紧要)

validate number of given letters in a word (duplicates and order doesn't matter much)

我需要验证一个单词是否满足最低字母要求,但我遇到了重复问题。

例如:我需要我的单词包含以下字母AAAABBC(至少4次A,至少2次B,至少1次D).

这应该匹配:

等等。

我设法构建了这个正则表达式:A.*(?=(A.*){4}),但我不知道如何强制执行其余字母和最少出现次数。我想过这样的事情:(A.*(?=(A.*){4,})|B.*(?=(B.*){2,})) 但这只能保证这个词至少有 4 个 A 或至少 2 个 B。同样,单词中的字母不能保证,我只需要确保我要问的字母在那里,并且至少出现我要求的次数。

那么,有什么提示吗?

您可以使用正则表达式:

^(?=(?:[^A]*A){4})(?=(?:[^B]*B){2})(?=[^D]*D).+$

RegEx Demo