正则表达式中空格的作用

(/\w+\b Byron/).test('Welcome Byron')

/w+b Byron/为什么中间要加一个空格,否则就不匹配Welcome Byron? b不是已经表示了空格了吗?

阅读 4.1k
6 个回答

首先:\w 匹配的是[A-Za-z0-9_],它是不包括空格的。\w+贪婪匹配最多能匹配Welcome。
\b的作用是匹配单词的边界,如果单词间以空格作为分割,它就是指单词和空格间的位置。注意,不是匹配空格。
所以上面的正则并没有匹配空格,所以要加空格。
如果不加空格,需要使用\s来匹配空格
\w+\b\sByron\w+\sByron

空格就匹配空格,\b表示单词边界,但在匹配时不消费字符,这个例子里去掉\b也可以匹配

\b 并不匹配空格,请详细阅读文档。

我怎么记得\s表示空格

\b是匹配字符串开头结尾及空格回车等的位置,即单词边界, 不会匹配空格符本身。
\s则是匹配空白字符本身、空格符本身、换行符本身。

\b^$
这3个符号是 零宽断言,它们只匹配位置,不消耗字符。
所以,你还是需要一个 空格\s 去匹配空格字符。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题