Ruby “逃跑”$&引用;使用gsub()
我正在尝试将字符串中前面的“Ruby “逃跑”$&引用;使用gsub(),ruby,regex,Ruby,Regex,我正在尝试将字符串中前面的“$”替换为“\$”。例如,“$5特价”应该变成“\$5特价” 我试过: "$5 special".gsub(/^\$/, "\$") => "$5 special" "$5 special".gsub(/^\$/, "\\$") => "\\$5 special" "$5 special".gsub(/^\$/, "\\\$") => "\\$5 special" 有人知道怎么做吗?你的第二个例子 "$5 special".gsub(/^\
$
”替换为“\$
”。例如,“$5特价
”应该变成“\$5特价
”
我试过:
"$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
只需使用单引号进行替换:
>> "$5 special".gsub(/^\$/, '\$') #=> "\\$5 special"
>> puts "$5 special".gsub(/^\$/, '\$') #=> nil
\$5 special
gsub
也可以接受字符串,在这种情况下,您不必转义$
:
"$5 special".gsub("$", '\$') #=> "\\$5 special"