正则表达式只接受单词之间的空格

时间:2011-09-21 13:38:10

标签: regex

我正在尝试创建一个正则表达式,其中用户应该只输入一个或多个单词之间的空格,并且其长度必须有一个限制[1到32]。

例如,它应该接受以下行;

wordX[space]wordX[space][space][space]wordX

但它不应该接受:

[space]wordXwordX[space]或仅[space]

wordX必须与此正则表达式兼容:

^(([0-9A-Za-z!"#$%'()*+,./:;=?@^_`{|}~\\\[\]-]))$

1 个答案:

答案 0 :(得分:1)

试试这个:

^(?:\w+\s){0,31}\w+$

\w表示:数字,字母,下划线

对于严格接受的字符:

^(?:[\w!"#$%'()*+,./:;=?@^_`{|}~\\\[\]]+\s){0,31}[\w!"#$%'()*+,./:;=?@^_`{|}~\\\[\]]+$

或者:

^(?:\S+\s){0,31}\S+$

\S - 除空白之外的任何字符

<强>更新

如果字长在1到32之间,请使用此正则表达式:

^(?:\w{1,31}\s)*\w{1,31}$

以同样的方式修改其他正则表达式。