寻找一个匹配gmail加地址的正则表达式

时间:2011-06-01 17:50:35

标签: regex

我现在正在使用它:

/^(.*)\+(.*)@gmail.com/

(我正在捕捉小组加号前后的文字)

它适用于大多数情况,例如 test+test@gmail.com 但是,如果我试着匹配说,那就倒下了 test+++test@gmail.com

重复的+标志似乎搞砸了。

非常感谢任何帮助。

由于

7 个答案:

答案 0 :(得分:5)

(.*?)\++(.*?)@gmail.com应该有效。

答案 1 :(得分:1)

你需要逃避+号:/^(.+?)\++(.+?)@gmail.com/

编辑:您的帖子格式错误:您的+已被转义

答案 2 :(得分:1)

您没有正确检测到+。使用类似这样的东西:^([^ +] +)[+] +([^ +] +)@ gmail.com

答案 3 :(得分:1)

[a-zA-Z0-9]{1,}[\+]{0,}[a-zA-Z0-9]{0,}@gmail.com

答案 4 :(得分:0)

你可以使用[]和^(所有的字符但......) e.g。

echo 'aaa++++bbb@gmail.com' | perl -p -e 's/^([^\+]*)\+(.*)@gmail.com/$1/'

答案 5 :(得分:0)

如果您不关心验证地址的第一部分(在任何“+”之前),您可以使用/^([^+]+)(:?+[^+]*)*@gmail.com/到第一部分。

根据RFC规定的任何规则,您可能希望对此进行更好的验证,以确保它是“有效”的帐户格式。

编辑 - 星号正在制作粗体语句。

答案 6 :(得分:0)

我认为可以简化一下操作:

如果您知道要查找的地址,并且希望与该地址匹配,无论其上是否带有'plus'标记,

bignev(\+.*)*@gmail.com

如果您只想要带有'plus'标签的标签:

bignev(\+.*)@gmail.com

如果您拥有自己的域:

bignev(\+.*)*@everton.com

或者专门回答原始帖子:

.*(\+.*)@gmail.com