Asp.net 正则表达式,在单词之间只允许一个空格

Asp.net 正则表达式,在单词之间只允许一个空格,asp.net,regex,Asp.net,Regex,我在ASP.NET应用程序中有一个文本框,需要使用正则表达式来验证用户输入字符串。正则表达式的要求如下: 它应该只允许单词之间有一个空格。也就是说,单词或字符之间的空格总数应仅为一个 它应该忽略前导空格和尾随空格 匹配项: 试验 测试abc 非匹配项: 测试abc def 测试abc-->我想在两个单词之间包含多个空格。但是,编辑在发布问题时忽略了这些额外的空格 非常简单: /^ *(\w+ ?)+ *$/ 小提琴:也许这个可以 \s*\S+?\s?\S*\s* 编辑:这是一个服务器编

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

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

    • 试验
    • 测试abc
    非匹配项:

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

    非常简单:

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

    小提琴:

    也许这个可以

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

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

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

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

    如何:

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

    对不起,没用。即使对于没有空格的字符串,它也会不断抛出验证错误。请检查您的复制/粘贴,因为它可以在使用.NET RE库的重新填充中工作。对匹配条件的两种不同解释表明它不清楚-允许使用两个以上的单词吗?为了更清晰,我对问题进行了编辑。正如你所指出的-由于要求在单词之间不允许有一个以上的空格,它限制用户输入最多包含两个单词。对不起,我对正则表达式的理解很差。我正在用您的表达式设置我的正则表达式验证控件的ValidationExpression属性,但它与一个单词都不匹配。如果您能对表达式进行任何必要的修改并发布,我将不胜感激。非常感谢。更新了我的帖子-请再试一次。哇,表达式“\s*\w+(\s\w+?\s*”对空格非常有效。我看到的唯一问题是,它不允许在字符串中使用任何特殊字符。我还需要允许特殊字符和数字。@Test\u用户。编辑以允许任何非空格字符。
    ^\s*(\w+\s)*\w+\s*$