我正在学习 Ruby 1.9.3 中的正则表达式。
你能告诉我为什么吗
/\b[^\b]*\b/.match(" hello world ") matched => #<MatchData "hello world">
不[^\b]
工作?应该不会跨越一个字吧??
你想要的是/\b\w*\b/
(\w
=字母数字字符)。\b
不表示实际字符,而是向字符添加单词边界条件。
[…]
表示一个字符集。由于\b
是标志而不是字符,因此您不能将它们放入字符集中。
顺便说一句,要匹配单词,您实际上不需要任何\b
s。一个简单的/\w+/
就可以了。
有关正确使用\b
.