正则表达式,只允许单词之间有一个空格

时间:2013-03-20 14:54:28

标签: asp.net regex

我在ASP.NET应用程序中有一个文本框,我需要使用正则表达式来验证用户输入字符串。正则表达式的要求是 -

  1. 它应该只允许单词之间有一个空格。也就是说,单词或字符之间的空格总数应该只有一个。
  2. 它应该忽略前导和尾随空格。
  3. 匹配:

    • 测试
    • 测试abc

    不匹配:

    • 测试abc def
    • 测试abc - >我想在两个单词之间包含多个空格。但是,编辑在发布问题时会忽略这些额外的空格。

4 个答案:

答案 0 :(得分:3)

假设必须有一个或两个'单词'(即非空格字符序列)

"\s*\S+(\s\S+)?\s*"

如果您只想允许字母,请将\S更改为[A-Za-z]

答案 1 :(得分:2)

非常简单:

/^ *(\w+ ?)+ *$/

小提琴:http://refiddle.com/gls

答案 2 :(得分:0)

也许这个人会这样做?

\s*\S+?\s?\S*\s*

编辑:它是一个服务器编码的正则表达式,这意味着您可能需要删除其中一个转义斜杠。

答案 3 :(得分:0)

怎么样:

^\s*(\w+\s)*\w+\s*$