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