从Ruby中的字符串中删除电子邮件地址
问题描述:
我有下面的代码应该是从字符串中删除特定的电子邮件地址(如果存在)。问题是我得到错误“字符串音译(ArgumentError)”中的无效范围“Y-D”,我假设它是因为它将我的输入视为正则表达式。我需要通过实际代码中的变量来删除,而不是字符串,但这是问题的简化版本。从Ruby中的字符串中删除电子邮件地址
那么我该如何正确执行此操作?
myvar = "[email protected] [email protected]"
myvar = myvar.delete("[email protected]")
答
尝试
myvar = "[email protected] [email protected]"
myvar = myvar.gsub("[email protected]", '').strip
答
字符串#删除(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方法。
答
你可以像下面这样做
myvar = "[email protected] [email protected]"
remove = "[email protected]"
myvar.gsub!(remove, "")
你尝试使用.gsub() –