正则表达式不匹配

时间:2011-12-27 16:16:09

标签: regex whitespace string-matching

为什么这个正则表达式:

[^\s]+  

...说这个字符串:

  

“用户的扩展程序”

不完全匹配?

2 个答案:

答案 0 :(得分:7)

正则表达式只匹配不包含任何空格的字符串。您的匹配方法似乎将正则表达式应用于整个字符串,因此它失败。

[abc]是一个字符类,意思是“abc”。 [^abc]是该类的反转,表示“除abc之外的任何字符”。
\s表示“任何空白字符” [^\s](也可以写成\S)表示“任何非空白字符”。
+表示“前面一个或多个令牌。

答案 1 :(得分:2)

您的正则表达式只会将字符串与一个或多个非空格字符匹配。 "user's extension"包含匹配的子字符串,但由于空格字符,它本身不匹配。