regex - 如何设置此正则表达式的最大长度?

标签 regex

此验证适用于允许字母数字字符、空格和破折号,但我无法将最大长度设置为 23。

正则表达式:
(^\w+\s*(-?)(\s*\w+\s*)(\w+)$){0,23}

我需要通过的案例:

  • 温斯顿 1-塞勒姆 6
  • 温斯顿-塞勒姆
  • 温斯顿塞勒姆
  • 1-two3
  • 带空格的 word2

  • 我需要失败的案例:
  • -Newberty-Los-
  • 12345678901234567890123444
  • 最佳答案

    单独检查长度可能更方便,但您可以使用前瞻来确认整个表达式在 0 到 23 个字符之间。

    (?=^.{0,23}$)(^\w+\s*(-?)(\s*\w+\s*)(\w+)$)
    

    http://rubular.com/r/GVIbG8hDKz

    关于regex - 如何设置此正则表达式的最大长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30059292/

    相关文章:

    java - 关闭括号之前的转义字符是多余的

    regex - 列出所有可能性的正则表达式

    jquery - 如何同时替换字符和数字?

    regex - 如何在 Bash 中匹配符号?

    python - 在多次调用的函数中编译正则表达式

    regex - 如何使以下正则表达式也匹配

    regex - 正则表达式不匹配引号中的内容

    java - Java 正则表达式中撇号的位置

    java - 是否有简单的 Java Regex (*SKIP)(*F) 替代方案?

    正则表达式匹配 {1,2,3,4} 的所有排列而不重复