Я новичок в регулярных выражениях в Ruby, и я не могу найти твердую документацию о том, что означает \k<name+0>
. Это часть +0
, которую я не получаю.Что означает «+0» в regexp k <name+0>?
Вот пример - это Regexp соответствует палиндромов:
\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 <...>'. –