2016-05-26 2 views
0

Я хочу превратить строку строки "variable.to_s" в "str(variable)", используя gsub! с регулярным выражением. Я в настоящее времяRuby gsub! с Regex keep word

string = "variable.to_s" 
string.gsub!(/\w+\.to_s/,/str(\w)/) 

, который, очевидно, не работает, как вы не можете использовать регулярное выражение во второй части GSUB, но как сделать так, чтобы \w найденного в GSUB части, но заменяя .to_s части?

ответ

3

Вы захватывая неправильную вещь:

string.gsub!(/(\w+)\.to_s/, 'str(\1)') 

gsub и gsub! принимать строку или регулярное выражение в качестве первого аргумента и строки или блока в качестве второго аргумента. Вы отправляете регулярное выражение для обоих.

Если вам нужно использовать часть матча во второй части, закрепите ее скобками. Вы сделали это непреднамеренно в своем коде, но с другой стороны.

+0

Это потрясающе! Спасибо! Я отвечу на ваш ответ, когда это позволит мне! –

Смежные вопросы