在gsub中命名的捕获

时间:2015-03-11 08:36:01

标签: ruby

我有以下代码,它正常工作:

line.gsub!(%r{margdat= (\d+/\d+/\d+)}, 'stamp=CONVERT(date, \1,103)')

但是,出于代码风格的原因,我更喜欢使用命名捕获。目前 - 它看起来对我来说太像“perl like”。我尝试过这种事:

line.gsub!(%r{margdat= (?<date>\d+/\d+/\d+)}, "stamp=CONVERT(#{date}, \1,103)")

但它只是抱怨变量不存在。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

你想:

'stamp=CONVERT(date, \k<date>, 103)'