我正试图将字符串中前面的“$”替换为“\$”。例如,“$5 special”应该变成“\$5 special”。
我试过了:

"$5 special".gsub(/^\$/, "\$") => "$5 special"
"$5 special".gsub(/^\$/, "\\$") => "\\$5 special"
"$5 special".gsub(/^\$/, "\\\$") => "\\$5 special"

有人知道怎么做吗?

最佳答案

你的第二个例子,

"$5 special".gsub(/^\$/, "\\$")

应该这么做。之所以在输出中看到两个斜杠,是因为ruby将字符串中的斜杠转义,以便将其打印为文本。如果按标准打印出来,你会发现这是你所期望的:
irb(main):009:0> a = "$5 special".gsub(/^\$/, "\\$")
=> "\\$5 special"
irb(main):011:0> print a
\$5 special=> nil

关于ruby - 使用gsub()转义“$”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5571511/

10-11 20:25