我正在尝试从电子邮件中删除"@"
符号之前的句点。我得到了:
array[0][2].gsub(/\./, '').strip
删除两个句点; "an.email@test.com"
成为"anemail@testcom"
,而我正在寻找它"anemail@test.com"
。我不能单独删除单个句点。我做错了什么?
答案 0 :(得分:1)
如果@
之前没有句号或者有多个句号,则可以使用此正则表达式
email = "my.very.long.email@me.com"
email.gsub(/\.(?=[^@]*\@)/, '')
# => "myverylongemail@me.com"
正则表达式解释:句点后跟零{或}更多出现@
以外的任何字符,后跟@
如果只需删除@
之前的第一个句点,则可以使用sub
代替gsub
的相同正则结构
答案 1 :(得分:0)
result = subject.gsub(/\.(?=\S+@)/, '')
<强>解释强>
\.
匹配一段时间(?=\S+@)
lookahead断言接下来的是任何非空白字符后跟arrobas <强>参考强>
答案 2 :(得分:0)
不要试图缩短它,使其变得更加复杂。按你的意思写它:
a, b = address.split('@')
cleaned = [a.delete('.'), b].join('@')