regex - 正则表达式在开始或结束时没有空格,但允许中间有空格,空和任何 6-20 个字符?

标签 regex

我用 ^$|^[^\s]+(\s+[^\s]+)*$达到:

  • 开始或结束时没有空白允许空白
  • 中间空格
  • 空字符串

  • 但是我怎样才能把量词限制在 6 - 20 之间呢?

    以下应该通过
    ""              <-- (empty string)
    "中文"          <-- ( any character)
    "A B"          <-- (allow space in middle)
    "hi! Hello There"
    

    以下应该失败
    "A"            <-- (less than 2 number of characters)
    " AB"          <-- (space at the start)
    "AB "          <-- (space at the end)
    " AB "
    "test test test test test test"  <--- (more than 20 characters included spaces)
    

    谢谢!

    最佳答案

    您可以使用此正则表达式:

    ^(?:\S.{4,18}\S)?$
    

    Working Demo

    关于regex - 正则表达式在开始或结束时没有空格,但允许中间有空格,空和任何 6-20 个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23559463/

    相关文章:

    正则表达式匹配类型 : ddmmyyyy 的日期

    c# - 将多个正则表达式模式作为 C# 中的属性放入一个模式中

    javascript - 匹配字符串中不以省略号结尾的单词

    javascript - 使用 JavaScript (RegExp) 转换 HTML 实体

    Java String length() 和 substring(int, int) 不考虑某些字符?

    regex - 不匹配任何确切单词的正则表达式

    php - 正则表达式匹配两个不同字符的第一次出现和最后一次出现之间的所有内容

    regex - 如何查找以 I、J 或 IJ 结尾的变量名的基数部分

    regex - tr 实用程序 - 向括号表达式添加异常(exception) [[ :punct:]]

    c++ - 通过正则表达式拆分字符串会删除结果的第一个字母