如何使用'$ MATCH'作为'$&'的别名

时间:2017-06-27 08:38:33

标签: ruby pseudo-globals

根据this document$MATCH$&的别名,我想将其用于可读性。

但它在我的环境中不起作用。

'1234-4567'.match(/\d{4}-/){ $& } # => "1234-"
'1234-4567'.match(/\d{4}-/){ $MATCH } # => nil

我误解了什么?

1 个答案:

答案 0 :(得分:4)

默认情况下,未启用这些[伪]全局变量的人名。您必须要english才能使用它们。

'1234-4567'.match(/\d{4}-/){ $& } # => "1234-"
'1234-4567'.match(/\d{4}-/){ $MATCH } # => nil # !> global variable `$MATCH' not initialized

require 'english'
'1234-4567'.match(/\d{4}-/){ $MATCH } # => "1234-"