我最近偶然发现了这个尝试使用递归正则表达式:
'--01-0-01'.scan /0|1|-(\g<0>)(\g<0>)/
#=> [['0', '-0-01']]
似乎第一个递归模式比预期的匹配得更深,而第二个递归模式正常执行。regex101 证实了这一点,它给出了正确的组 ('-01'
和'-0-01'
)。这是 ruby 的一个奇怪特性还是一个错误的实现?
作为记录,这发生在试图解决这个代码高尔夫问题时。
我最近偶然发现了这个尝试使用递归正则表达式:
'--01-0-01'.scan /0|1|-(\g<0>)(\g<0>)/
#=> [['0', '-0-01']]
似乎第一个递归模式比预期的匹配得更深,而第二个递归模式正常执行。regex101 证实了这一点,它给出了正确的组 ('-01'
和'-0-01'
)。这是 ruby 的一个奇怪特性还是一个错误的实现?
作为记录,这发生在试图解决这个代码高尔夫问题时。