如何在单引号状字符串中转义斜线?

问题描述 投票:1回答:4

红宝石1.8.6(2007-09-24补丁程序级别111)

str = '\&123'
puts "abc".gsub("b", str) => ab123c
puts "abc".gsub("b", "#{str}") => ab123c
puts "abc".gsub("b", str.to_s) => ab123c
puts "abc".gsub("b", '\&123') => ab123c
puts "abc".gsub("b", "\&123") => a&123c <--- This I want to achieve using temporary variable

如果将str = '\&123'更改为str = "\&123",它可以正常工作,但是我从str函数中获得了match,所以我无法在括号内手动指定它。...有什么方法可以更改字符串的'string'"string"行为?

ruby regex gsub
4个回答
0
投票

也许有一种更简单的方法,但是下面的代码有效

> str = '\&123'
> puts "abc".gsub("b", str.gsub(/\\&/o, '\\\\\&\2\1'))
> => a\&123c

0
投票

简单:

str = '\&123' <-- the result of your match function
str = str.gsub(/\\/, '\\\\')

您可能还想看看here


0
投票

@ Valentin

->我的意思是说match的str不是逐字记录的。因此出现了另一个我不知道的解决方案。

"abc".gsub("b") { str } -> a\&123c


0
投票

只需删除反斜杠:

© www.soinside.com 2019 - 2024. All rights reserved.