2015-02-08 239 views
2

我是新来的红宝石,我的正则表达式知识留下了很多不足之处。我试图检查一个字符串是否是回文,但是希望忽略空格和逗号。删除逗号和空白红宝石

当前的代码我已经是

def palindrome(string) 
    string = string.downcase 
    string = string.gsub(/\d+(,)\d+//\s/ ,"") 
    if string.reverse == string 
    return true 
    else 
    return false 
    end 
end 

这里的任何援助将不胜感激。

+0

你想' “拍拍,点击”'返回TRUE;?请注意,您的主体可以写成一行:'string.downcase.gsub(/ \ d +(,)\ d + // \ s /,“”)== string'。您不需要返回最后计算的值。 – 2015-02-08 20:50:16

回答

8

但希望忽略空格和逗号

你并不需要把\d在你的正则表达式。只需用空字符串替换空格或逗号即可。

string = string.gsub(/[\s,]/ ,"") 

上面的gsub命令将删除所有空格或逗号。 [\s,]与空格或逗号相匹配的字符类。

0

另一种方法是使用的方法String#tr

str = "pat, \t \ntap" 

str.tr(" ,\t\n", '') #=> "pattap"