代码之家  ›  专栏  ›  技术社区  ›  Antonio Steve

如何编写与至少包含4个字母的字符串匹配的正则表达式?

  •  -1
  • Antonio Steve  · 技术社区  · 8 年前

    例:我想确保字符串必须包含a、b、c、d

      test strings:
      "ABCDF" will be true 
      "AACDF" will be false (it not contains 'B') 
      "AABCDFG" will be true (it allows duplicated words)   
    

    谢谢大家!

    1 回复  |  直到 8 年前
        1
  •  0
  •   Valdi_Bo    8 年前

    如果你想匹配正则表达式 一个字 包含4个特殊 字母(在一些更大的文本中),你可以使用:

    (?=\w*A)(?=\w*B)(?=\w*C)(?=\w*D)\w+
    

    它包含4个正向查找。 他们每个人都在寻找 A , B , C D ,分别是, 在多个字字符之后(可能是0)。 然后是实际匹配的部分-一个单词字符序列。

    你也应该用 g (全局)选项,以匹配 全部的 这样的话。

    另一种可能是你想核实 整根绳子 (某物) 比如密码标准验证)。 然后正则表达式可以是:

    (?=.*A)(?=.*B)(?=.*C)(?=.*D).+
    

    区别在于:

    • 每个lookahead在任何数字后面查找特定的字符 属于 任何 字符(而不是单词字符)。
    • 匹配部分还包含任何字符(与整个字符串匹配)。
    • G 不需要选项。