1

我正在学习 Ruby 1.9.3 中的正则表达式。

你能告诉我为什么吗

/\b[^\b]*\b/.match("    hello  world    ")  matched  => #<MatchData "hello  world">  

[^\b]工作?应该不会跨越一个字吧??

4

1 回答 1

2

你想要的是/\b\w*\b/\w=字母数字字符)。\b不表示实际字符,而是向字符添加单词边界条件。

[…]表示一个字符集。由于\b是标志而不是字符,因此您不能将它们放入字符集中。

顺便说一句,要匹配单词,您实际上不需要任何\bs。一个简单的/\w+/就可以了。

有关正确使用\b.

于 2012-08-26T02:41:54.673 回答