我試圖用「\$
」替換字符串中前面的「$
」。例如,「$5 special
」應該變成「\$5 special
」。
我已經試過:
"$5 special".gsub(/^\$/, "\$") => "$5 special"
"$5 special".gsub(/^\$/, "\\$") => "\\$5 special"
"$5 special".gsub(/^\$/, "\\\$") => "\\$5 special"
任何人都知道如何做到這一點?
我試圖用「\$
」替換字符串中前面的「$
」。例如,「$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
只需使用單引號替代:
>> "$5 special".gsub(/^\$/, '\$') #=> "\\$5 special"
>> puts "$5 special".gsub(/^\$/, '\$') #=> nil
\$5 special
gsub
可以接受的字符串爲好,在這種情況下你不必轉義$
:
"$5 special".gsub("$", '\$') #=> "\\$5 special"