如何创建正则表达式以验证仅包含gmail.com的字符串?

时间:2018-05-25 11:09:03

标签: java regex

我有一封包含电子邮件的文字。如果文本包含@gmail.com,则字符串为valid。

示例:

igoer@gmail.com igoesdr@gmail.com igoer@MAIL.ru igoer@gmail.com 

我认为验证的代码是:^(.+@gmail.com).*$

但这段代码对我不起作用。

4 个答案:

答案 0 :(得分:0)

试试这个@igor

(\W|^)[\w.+\-]*@gmail\.com(\W|$)

答案 1 :(得分:0)

尝试^(*)(@gmail.com)$.*\\b@gmail.com\\b

我认为你的正则表达式最终会废除*,它会起作用。最后的额外*表示输入字符串应以 “@ gmail.com”之后的任何结尾。您的正则表达式正在搜索xyz@gmail.com.xyz之类的字符串,其中xyz可以是任何内容。

答案 2 :(得分:0)

从用户和original question阅读current edited version后,修改内容改变了用户的问题。

原始未编辑版本的可能解决方案:

  

我有一封包含电子邮件的文字。如果文本有所有邮件@ gmail.com -   字符串是有效的。

可能是重复包含@gmail的电子邮件地址,后跟整个字符串的空格,假设该字符串仅包含电子邮件地址。

^(?:\S+@gmail\.com )*\S+@gmail\.com$

如果您可能使用的电子邮件地址周围有多个空格:

^ *(?:\S+@gmail\.com(?: *|$))+$

答案 3 :(得分:0)

您可以使用.+运算符,请参阅示例:

public class Test
{
    public static void main(String[] args)
    {
        String email = "gabrielpereira@gmail.com";
        System.out.println(email.matches(".+@gmail.com"));
    }
}
//returns true

.+将检查是否存在1个或多个字符。