2011-11-24 104 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方法。

相關問題