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

时间:2014-05-09 08:00:09

标签: regex

我使用^$|^[^\s]+(\s+[^\s]+)*$来实现:

  1. 开始或结束时没有空格允许白色
  2. 中间的空间
  3. 空字符串
  4. 但是如何将量词用于限制字符数在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)
    

    谢谢!

2 个答案:

答案 0 :(得分:4)

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

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

Working Demo

答案 1 :(得分:2)

这样的正则表达式怎么样?

^$|^\S.{4,18}\S$

Regular expression visualization

Debuggex Demo