Java 如何创建正则表达式来验证只包含gmail.com的字符串?
我有一条短信和电子邮件。如果文本包含Java 如何创建正则表达式来验证只包含gmail.com的字符串?,java,regex,Java,Regex,我有一条短信和电子邮件。如果文本包含@gmail.com,则字符串为validate 例如: igoer@gmail.com igoesdr@gmail.com igoer@MAIL.ru igoer@gmail.com 我认为验证的代码是:^(+@gmail.com)。*$ 但是这个代码对我不起作用。试试这个@igor (\W|^)[\w.+\-]*@gmail\.com(\W|$) 试试^(*)(@gmail.com)$或*\\b@gmail.com\\b 我认为你的正则表达式应该在最
@gmail.com
,则字符串为validate
例如:
igoer@gmail.com igoesdr@gmail.com igoer@MAIL.ru igoer@gmail.com
我认为验证的代码是:^(+@gmail.com)。*$
但是这个代码对我不起作用。试试这个@igor
(\W|^)[\w.+\-]*@gmail\.com(\W|$)
试试^(*)(@gmail.com)$
或*\\b@gmail.com\\b
我认为你的正则表达式应该在最后去掉*
,它会起作用的。结尾额外的*
意味着输入字符串应该以“@gmail.com”之后的任何内容结尾。您的正则表达式正在搜索类似xyz@gmail.com.xyz
,其中xyz
可以是任何内容。从用户和中读取,编辑更改了用户的问题
未经编辑的原始版本的可能解决方案如下:
我有一条短信和电子邮件。如果文本包含所有邮件@gmail.com,则
字符串是有效的
可以是重复包含@gmail
的电子邮件地址,然后是整个字符串的空白,假设该字符串仅由电子邮件地址组成
如果电子邮件地址周围可能有多个空格,您可以使用:
您可以使用
+
操作符,请参见示例:
public class Test
{
public static void main(String[] args)
{
String email = "gabrielpereira@gmail.com";
System.out.println(email.matches(".+@gmail.com"));
}
}
//returns true
+
将检查是否存在一个或多个字符。但不起作用
。。。什么不起作用?为什么不起作用,在我看来很好(除了可能不必要的。*最后)你的答案被标记为“低质量”。请试着用几句话解释这个解决方案的工作原理。