我正在尝试用"\$“替换字符串中前面的"$”。例如,"$5 special“应该变成"\$5 special”。
我试过了:
"$5 special".gsub(/^\$/, "\$") => "$5 special"
"$5 special".gsub(/^\$/, "\\$") => "\\$5 special"
"$5 special".gsub(/^\$/, "\\\$") => "\\$5 special"有人知道怎么做吗?
发布于 2011-04-07 03:01:06
你的第二个例子
"$5 special".gsub(/^\$/, "\\$")应该做这件事。您在输出中看到两个斜杠的原因是Ruby转义了字符串中的斜杠,以便将其打印为文字。如果您将其打印为标准输出,您将看到它是您所期望的:
irb(main):009:0> a = "$5 special".gsub(/^\$/, "\\$")
=> "\\$5 special"
irb(main):011:0> print a
\$5 special=> nil发布于 2011-04-07 03:14:02
只需使用单引号进行替换:
>> "$5 special".gsub(/^\$/, '\$') #=> "\\$5 special"
>> puts "$5 special".gsub(/^\$/, '\$') #=> nil
\$5 special发布于 2011-04-08 07:19:16
gsub也可以接受字符串,在这种情况下,您不必转义$
"$5 special".gsub("$", '\$') #=> "\\$5 special"https://stackoverflow.com/questions/5571511
复制相似问题