2011-11-24 103 views
3

我有下面的代码应该是从字符串中删除特定的电子邮件地址(如果存在)。问题是我得到错误“字符串音译(ArgumentError)”中的无效范围“Y-D”,我假设它是因为它将我的输入视为正则表达式。我需要通过实际代码中的变量来删除,而不是字符串,但这是问题的简化版本。从Ruby中的字符串中删除电子邮件地址

那么我该如何正确执行此操作?

myvar = "[email protected] [email protected]" 
myvar = myvar.delete("[email protected]") 
+0

你尝试使用.gsub() –

回答

2

字符串#删除(STR)不会删除文本字符串str但建立一套出来的str单个字符,并删除这些字符的所有地方。试试这个:

"sets".delete("test") 
=> "" 

"sets".delete("est") 
=> "" 

连字符有一个特殊的含义,它定义了一个字符范围。 String#delete("a-d")将删除所有出现的a,b,c和d字符。范围边界字符应该按照升序排列:您应该写入"a-d"而不是"d-a"

在您的原始示例中,ruby尝试构建一个字符范围从y-d子字符串并失败。

改用String#gsub方法。

相关问题