werid,当在irb中两次激发时,相同的表达产生不同的值

pie*_*fou 4 ruby regex

irb(main):051:0> "ts_id < what".gsub(/(=|<|>)\s?(\w+|\?)/,"#{$1} ?")  
=> "ts_id > ?"
irb(main):052:0> "ts_id < what".gsub(/(=|<|>)\s?(\w+|\?)/,"#{$1} ?")
=> "ts_id < ?"
Run Code Online (Sandbox Code Playgroud)

任何人都可以开导我吗?

Chu*_*uck 5

问题是变量运行之前$1插入到参数字符串中,这意味着先前的值是符号被替换的值.您可以替换第二个参数以获得预期的效果. gsub$1'\1 ?'

  • 我希望我知道英语非常好,告诉主要想法如此简短易懂"在gsub运行之前,$ 1被插入到参数字符串中......" (2认同)