gsub一个特殊的角色

时间:2014-07-07 15:24:29

标签: ruby ruby-on-rails-3

HY 我尝试使用gsub来删除这个角色'是carful它不是'或者我认为他来自Word(微软)。 我真的不明白为什么我不能删除这个角色,因为我可以删除所有其他

当我使用gsub时:

pattern = /(\’|\"|\.|\*|\/|\-|\\|\)|\$|\+|\(|\^|\?|\!|\~|\`)/
restring = string.gsub(pattern){|match|" " }

我在下方收到此错误

syntax error, unexpected $end, expecting keyword_end
   pattern = /(\’|\"|\.|\*|\/|\-|\\|\)|\$|\+|\(|\^|\?|\!|\~|\`)/

              ^

2 个答案:

答案 0 :(得分:0)

当我通过Rubular的网站运行您的RegEx时,我得到了这个;

enter image description here

我认为这是一个UTF-8问题,经过一些额外的堆栈溢出后,在rails应用中将# encoding: utf-8添加到文件顶部似乎很常见。

答案 1 :(得分:0)

您可以在正则表达式中添加以下内容:

/\u2018|\u2019|\u201A/

是一些单引号:["‘", "’", "‚"]

如果你感兴趣,这里有一个我以前用来清理Word文本的简单方法(在线汇总了很多资源):

def replace(text)
  text.
    gsub(/[\u2018|\u2019|\u201A]/, "\'").
    gsub(/[\u201C|\u201D|\u201E]/, "\"").
    gsub(/\u2026/, "...").
    gsub(/[\u2013|\u2014]/, "-").
    gsub(/\u02C6/, "^").
    gsub(/\u2039/, "<").
    gsub(/\u203A/, ">").
    gsub(/[\u02DC|\u00A0]/, " ")
end