【问题标题】:How to replace single blackslash in ruby如何在 ruby​​ 中替换单个反斜杠
【发布时间】:2015-03-15 02:18:11
【问题描述】:

我一直在尝试这样的事情来用一个单词替换黑斜线:

str ="\"
str.gsub!("\", "\add") 

到目前为止没有运气。我究竟做错了什么?谢谢

【问题讨论】:

  • 尝试从终端的命令行输入以下内容:ruby -e "str = "\"。它将返回,"-e:1: unterminated string meets end of file"-e 标志指示 Ruby 运行包含在 -e 后面的字符串中的代码。您收到错误消息的原因是 Ruby 读取开始字符串的双引号,然后读取(单个)字符 \",这是一个双引号,但由于它被转义,它不会终止字符串。你得到了异常,因为字符串没有右双引号。

标签: ruby gsub


【解决方案1】:

Stack Overflow 上突出显示的语法表明了问题所在。您的初始反斜杠没有被转义!

str.gsub("\\","\\add")

编辑澄清

2.2.0 :002 > str = "\\"
 => "\\" 
2.2.0 :003 > str.gsub("\\","\\add")
 => "\\add" 

【讨论】:

  • 我收到以下错误:: 语法错误,意外 $undefined,期望输入结束 str.gsub("\\","\\add")
【解决方案2】:

试试这个代码

str = "\\"

str.gsub!("\\", "add")

print str

【讨论】:

    【解决方案3】:

    "\" 在 ruby​​ 字符串中不存在

    str ="RU\BY"
    puts str
    

    将打印 RUBY

    你只能使用"\\"所以答案是str.gsub!("\\","\\add")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 2018-06-07
      • 1970-01-01
      • 2021-08-19
      • 2012-06-16
      • 1970-01-01
      相关资源
      最近更新 更多