正则表达式元字符,\<;和\>;,最新Ruby版本不再支持?

正则表达式元字符,\<;和\>;,最新Ruby版本不再支持?,ruby,regex,word-boundary,Ruby,Regex,Word Boundary,当我在irb中对此进行研究时,我发现元字符\在我期望值时返回nil。在我使用的备忘单下,这些元字符分别称为“单词的开头”和“单词的结尾”。但是它们的功能不是和“单词边界”一样吗 弗里德尔在《掌握正则表达式》中的例子似乎是正确的 irb(main):001:0> "this cat is fat" =~ /\bcat\b/ => 5 irb(main):002:0> "this cat is fat" =~ /\<cat\>/ => nil irb(main):

当我在
irb
中对此进行研究时,我发现元字符
\
在我期望值时返回nil。在我使用的备忘单下,这些元字符分别称为“单词的开头”和“单词的结尾”。但是它们的功能不是和“单词边界”一样吗

弗里德尔在《掌握正则表达式》中的例子似乎是正确的

irb(main):001:0> "this cat is fat" =~ /\bcat\b/
=> 5
irb(main):002:0> "this cat is fat" =~ /\<cat\>/
=> nil
irb(main):003:0> "cat" =~ /\<cat\>/
=> nil
irb(main):001:0>“这只猫很胖”=~/\bcat\b/
=> 5
irb(main):002:0>“这只猫很胖”=~/\/
=>零
irb(主):003:0>“猫”=~/\/
=>零

这是完全可能的。从Ruby 1.9开始,Ruby切换到Oniguruma进行正则表达式解析。在1.9之前,\<和>可能是有效的

然而,在研究这一点时,我发现它们被列为regex语言的一个特定GNU附加项


在中使用它,它支持通过几个不同的ruby实现运行正则表达式,我无法在任何版本中使用\<或>\b似乎是指定单词边界的更标准的方式…

Ruby总是使用
\b
作为单词边界,就像Perl和其他Perl派生风格(JavaScript、.NET、Python等)一样。只有像egrep这样的GNU工具才使用
\

那是你用的备忘单吗?它包含几个错误,这是其中之一。在其他地方,它说
是元字符,你必须使用
\
来逐字匹配它们;第二十二条军规怎么样