正则表达式用于重新验证

时间:2013-07-01 20:33:52

标签: regex

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

^\S+$

例如,如果我输入'Test Me',这个expresson表示它无效..如何修复此问题以允许空格?

4 个答案:

答案 0 :(得分:2)

你到底想要匹配什么?

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

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

答案 1 :(得分:2)

                               ^\S+$
                               ^^ ^^
                               || ||
^  start of string-------------+| ||
\S anything but a whitespace----+ ||
+  one or more of what precedes---+|
$  end of string-------------------+

(访问regular-expressions.info获取更大的参考资料)

确实不知道你要改变什么,因为这个正则表达式似乎是为了而不是允许空格的唯一目的而编写的。

答案 2 :(得分:1)

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

^[\w\s]+$

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

\s匹配空白

请注意,如果您希望使用^.+$

,最好不要使用标点符号。

答案 3 :(得分:1)

^表示“字符串的开头”

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

+表示找到前一次或多次

$表示“字符串结束”

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