验证单词中给定字母的数量(重复和顺序无关紧要)
validate number of given letters in a word (duplicates and order doesn't matter much)
我需要验证一个单词是否满足最低字母要求,但我遇到了重复问题。
例如:我需要我的单词包含以下字母AAAABBC
(至少4次A
,至少2次B
,至少1次D
).
这应该匹配:
ABRACADABRA
;
BRACADABRAA
;
BRAACADABRAA
;
DBRAACADABRAA
;
等等。
我设法构建了这个正则表达式:A.*(?=(A.*){4})
,但我不知道如何强制执行其余字母和最少出现次数。我想过这样的事情:(A.*(?=(A.*){4,})|B.*(?=(B.*){2,}))
但这只能保证这个词至少有 4 个 A
或至少 2 个 B
。同样,单词中的字母不能保证,我只需要确保我要问的字母在那里,并且至少出现我要求的次数。
那么,有什么提示吗?
您可以使用正则表达式:
^(?=(?:[^A]*A){4})(?=(?:[^B]*B){2})(?=[^D]*D).+$
我需要验证一个单词是否满足最低字母要求,但我遇到了重复问题。
例如:我需要我的单词包含以下字母AAAABBC
(至少4次A
,至少2次B
,至少1次D
).
这应该匹配:
ABRACADABRA
;BRACADABRAA
;BRAACADABRAA
;DBRAACADABRAA
;
等等。
我设法构建了这个正则表达式:A.*(?=(A.*){4})
,但我不知道如何强制执行其余字母和最少出现次数。我想过这样的事情:(A.*(?=(A.*){4,})|B.*(?=(B.*){2,}))
但这只能保证这个词至少有 4 个 A
或至少 2 个 B
。同样,单词中的字母不能保证,我只需要确保我要问的字母在那里,并且至少出现我要求的次数。
那么,有什么提示吗?
您可以使用正则表达式:
^(?=(?:[^A]*A){4})(?=(?:[^B]*B){2})(?=[^D]*D).+$