Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails gsub!清理字符串,去掉撇号_Ruby On Rails_Ruby_String_Gsub_Code Cleanup - Fatal编程技术网

Ruby on rails gsub!清理字符串,去掉撇号

Ruby on rails gsub!清理字符串,去掉撇号,ruby-on-rails,ruby,string,gsub,code-cleanup,Ruby On Rails,Ruby,String,Gsub,Code Cleanup,试图删除字符串中的撇号。使用下面的代码,我已经删除了撇号和空格,有人能帮我修复它,所以我只是删除撇号吗 def clean_uniname(text) return text.gsub!(/\s|"|'/, '') end 这应该可以做到: def clean_uniname(text) text.gsub!("'", '') end \s表示“空白字符,”表示引号。如果您不想在正则表达式中使用引号,请将其拉入。有关调试帮助,请尝试进行测试 这意味着您的代码应该是

试图删除字符串中的撇号。使用下面的代码,我已经删除了撇号和空格,有人能帮我修复它,所以我只是删除撇号吗

def clean_uniname(text)
 return text.gsub!(/\s|"|'/, '')
end

这应该可以做到:

    def clean_uniname(text)
     text.gsub!("'", '')
    end
\s
表示“空白字符,
表示引号。如果您不想在正则表达式中使用引号,请将其拉入。有关调试帮助,请尝试进行测试

这意味着您的代码应该是:

def clean_uniname(text)
  text.gsub!(/\s|"|'/, '')

  text
end

值得注意的是,
gsub!
如果未做任何更改,则返回
nil
,因此如果使用返回值,此处需要显式返回
text

尝试过,我收到了以下错误:testing.rb:41:in
进程中的block\u unis:nil:nil类(NoMethodError)的未定义方法该错误与您提到的问题无关,如下所示:2.2.1:001>string=“我是字符串”=>“我是字符串”2.2.1:002>string.gsub!(“,”)=>“我是字符串”“2.2.1:003>如果您发布更多代码,我可以帮助您解决其他问题,但您最好打开一个新问题并标记我对此问题的答案,因为我的答案解决了您提出的问题。撇号和单引号使用相同的符号,但含义不同。假设你的字符串是
“她说,‘我不知道’
。你想获得
“她说,'我不知道'”
(只删除撇号)还是
“她说,我不知道”
(删除符号
““
)还是其他什么?如果是前者,那就有点棘手了,因为有些词在最后一个字符后面有一个撇号(“兄弟”,或者是以“s”结尾的词的所有格形式,比如“克里斯的车”),有些词有多个撇号(“不可能”)。