1

我正在尝试验证验证问题,这是我拥有的正则表达式,我不是这个意思,但这个表达式不允许空格

^\S+$

例如,如果我输入“测试我”,这个表达式说它无效。我该如何解决这个问题以允许空格?

4

4 回答 4

2

你到底想匹配什么?

  • ^匹配字符串的开头
  • $匹配字符串的结尾
  • +允许最后一个表达式多次出现
  • \S代表除空格以外的任何内容
  • \s代表空白

您拥有的表达式将匹配任何仅包含非空白字符的字符串。如果您可以表达您想要匹配的确切内容,我可以帮助您。

于 2013-07-01T20:38:04.863 回答
2
                               ^\S+$
                               ^^ ^^
                               || ||
^  字符串开头-------------+| ||
\S不是空格----+ ||
+  前面的一项或多项---+|
$  字符串结尾-------------------+

(访问regular-expressions.info以获得更大的参考)

真的不确定你想改变什么,因为这个正则表达式似乎是为了不允许空格而编写

于 2013-07-01T20:40:30.963 回答
1

^意思是“字符串的开始”

\S是 Regex 中的一个特殊关键字,表示“非空白字符”

+表示查找前一次或多次

$意思是“字符串的结尾”

所以在英语中,这个正则表达式说:从字符串的开头开始,在字符串的结尾之前只找到一次或多次非空白字符。这就是为什么它不允许空白。

于 2013-07-01T20:39:27.100 回答
1

它不匹配的原因是因为您不允许在字符串中使用\S 可能更好地为您服务的空格字符:

^[\w\s]+$

\w 相当于 [A-Za-z0-9_]

\s匹配空格

请记住,此正则表达式不允许标点符号,如果您愿意,最好使用^.+$

于 2013-07-01T20:38:25.973 回答