【问题标题】:validate number of given letters in a word (duplicates and order doesn't matter much)验证单词中给定字母的数量(重复和顺序无关紧要)
【发布时间】:2015-02-11 16:23:01
【问题描述】:

我需要验证一个单词是否满足最小字母要求并且我被困在重复中。

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

这应该匹配:

  • ABRACADABRA;
  • BRACADABRAA;
  • BRAACADABRAA;
  • DBRAACADABRAA;

等等。

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

那么,有什么提示吗?

【问题讨论】:

    标签: java regex validation match


    【解决方案1】:

    你可以使用正则表达式:

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

    RegEx Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 2017-05-03
      • 2014-08-30
      • 2020-09-10
      相关资源
      最近更新 更多