这样做的最佳方式是什么:
mail = "bob@something.com"
mail2 = mail.do_magic
# puts mail2 will return "bob@anotherwebsite.com"
我正在考虑正则表达式,但是还有另一种很酷的方式吗?如果没有,我应该如何使用regexp?
答案 0 :(得分:3)
不确定我完全明白你在问什么,但你不能像这样使用正则表达式吗?
irb(main):001:0> email = "bob@example.com"
=> "bob@example.com"
irb(main):002:0> email.gsub(/@[\w.]+/, '@something.com')
=> "bob@something.com"
让我知道我错过了什么,或者我是不是正确地理解了这个问题。
答案 1 :(得分:1)
您也可以在字符串索引中使用regexp:
email = "bob@example.com"
replace = "foobar.invalid"
email[/@.*/] = "@#{replace}"
如果您不想修改email
:
(new = email.dup)[/@.*/] = "@#{replace}"
p [email,new] # => ["bob@example.com", "bob@foobar.invalid"]
答案 2 :(得分:0)
避免使用正则表达式的另一种方法是拆分和连接
new = [email.split('@').first, "foobar.invalid"].join('@')