如何使用正则表达式匹配单个空格而不仅仅是单个空格

Rea*_*tor 7 regex

这是我目前拥有的,这将匹配字母数字字符和空格:

^[a-z0-9\s]+$
Run Code Online (Sandbox Code Playgroud)

我想做的是确保只有一(1)个空格才能匹配.以上将匹配"这是一个测试",但如果输入是"This isatest"或"T hisisatest",我只希望它匹配.一旦总空间不止一个,它将不再匹配.

理想情况下,如果空间是领先或尾随,它也不匹配,但那只是结冰.

编辑: 这个想法是,这将用于在帐户创建时验证帐户名称.帐户名称只能包含拉丁字母,数字和单个空格.但是,它可以是所有字母或所有数字,不需要空格.这绝对是关于空间而不是空白.

pho*_*xis 6

将允许介于两者之间的最多一个空间.

^[a-zA-Z0-9]+\s?[a-zA-Z0-9]+$

将允许两者之间只有一个空格

^[a-zA-Z0-9]+\s[a-zA-Z0-9]+$

EDIT1:

以上解决方案不接受单个字符串.

以下解决方案还匹配单个字符串

^[a-zA-Z0-9]+([ ][a-zA-Z0-9]+)?$


Gee*_*ert 5

首先通过修剪前导和尾随空格来清除用户名.使用占有量词的正则表达式:

^[a-z0-9]+(?: [a-z0-9]+)?$
Run Code Online (Sandbox Code Playgroud)