我是Ruby中正则表达式的新手,我似乎无法找到有关\k<name+0>
含义的任何可靠文档。这是我没有收到的+0
部分。正则表达式中的“+0”是什么意思?k <name+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
。我还没有找到任何文件或例子,任何人都可以指出我的方向?
伟大的问题。它向我介绍了'\ g <...>'的奇妙世界。 –