我是 Ruby 中正则表达式的新手,我似乎找不到任何可靠的文档来说明什么\k<name+0>
意思。这是+0
我没有得到的部分。
这是一个例子——这个正则表达式匹配回文:
\A(?<p>(?:(?<l>\w)\g<p>\k<l+0>|\w))\z
当我删除它时+0
,\k<l+0>
它不再正确匹配。
我的测试:
>> /\A(?<p>(?:(?<l>\w)\g<p>\k<l+0>|\w))\z/.match "aabbcdcbbaa"
#=> #<MatchData "aabbcdcbbaa" p:"aabbcdcbbaa" l:"c">
>> /\A(?<p>(?:(?<l>\w)\g<p>\k<l>|\w))\z/.match "aabbcdcbbaa"
#=> nil
我所做的只是删除+0
. 我还没有找到任何文档或示例,有人能指出我正确的方向吗?