首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gsub()转义"$“

使用gsub()转义"$“
EN

Stack Overflow用户
提问于 2011-04-07 02:57:01
回答 3查看 167关注 0票数 2

我正在尝试用"\$“替换字符串中前面的"$”。例如,"$5 special“应该变成"\$5 special”。

我试过了:

代码语言:javascript
复制
"$5 special".gsub(/^\$/, "\$") => "$5 special"  
"$5 special".gsub(/^\$/, "\\$") => "\\$5 special"  
"$5 special".gsub(/^\$/, "\\\$") => "\\$5 special"

有人知道怎么做吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-07 03:01:06

你的第二个例子

代码语言:javascript
复制
"$5 special".gsub(/^\$/, "\\$")

应该做这件事。您在输出中看到两个斜杠的原因是Ruby转义了字符串中的斜杠,以便将其打印为文字。如果您将其打印为标准输出,您将看到它是您所期望的:

代码语言:javascript
复制
irb(main):009:0> a = "$5 special".gsub(/^\$/, "\\$")
=> "\\$5 special"
irb(main):011:0> print a
\$5 special=> nil
票数 6
EN

Stack Overflow用户

发布于 2011-04-07 03:14:02

只需使用单引号进行替换:

代码语言:javascript
复制
>> "$5 special".gsub(/^\$/, '\$') #=> "\\$5 special"
>> puts "$5 special".gsub(/^\$/, '\$') #=> nil
\$5 special
票数 3
EN

Stack Overflow用户

发布于 2011-04-08 07:19:16

gsub也可以接受字符串,在这种情况下,您不必转义$

代码语言:javascript
复制
"$5 special".gsub("$", '\$') #=> "\\$5 special"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5571511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档