例子
我收到了朋友的电子邮件列表,但问题是有些人输入了完整格式的电子邮件 (xxx@example.com),有些人输入了 (xxx@xxx without .com)。我想将其改进为相同的格式。如果我想在 vi 上编辑它们,我该如何改进?
在我的 emaillist.txt
foo@gmail
bar@hotmail.com
bas@gmail
qux@abc.com
mike@abc
john@email
我的尝试:
我尝试使用像这样的简单正则表达式来捕捉像 xxx@xxx 这样的模式
:%s/\(\w*@\w*\)/\0.com/g
or
:%s/\(\w*@\w*[^.com]\)/\0.com/g
但问题是这个正则表达式也包括 xxx@example.com
我输入上面的命令后结果变成了这样
foo@gmail.com
bar@hotmail.com.com
bas@gmail.com
qux@abc.com.com
mike@abc.com
john@email.com
所以,我替换后的期望应该是这样的:
foo@gmail.com
bar@hotmail.com
bas@gmail.com
qux@abc.com
mike@abc.com
john@email.com
在这种情况下如何使用正则表达式?