Ruby正则表达式和破折号( - )和»等特殊字符

时间:2015-03-06 02:31:17

标签: ruby regex

我试图用一个空格替换一些文本中的所有标点和喜欢。所以我有一行

text = "—Bonne chance  Harry  murmura t il »"

如何删除短划线和短划线?»?我试过了

text.gsub( /»|—/, ' ')

这给出了错误,这并不奇怪。我是ruby的新手,只是想通过编写一个脚本从书的一章中拉出所有单词来试图掌握一些东西。我想我只是删除标点和符号,只使用text.split。任何帮助,将不胜感激。我找不到多少

2 个答案:

答案 0 :(得分:1)

事实证明问题与utf-8编码有关。添加

# encoding: utf-8

解决了我的问题以及@Andrewlton所说的很有效

答案 1 :(得分:0)

这应该以你试图做的方式正确替代;只需添加括号并删除管道:

text.gsub(/[»—]/, ' ')

标准标点符号regexp也有效:

text.gsub(/\p{P}/, ' ')

你应该能够普遍使用regexp,来自你所知道的任何语言。希望这有帮助!