正则表达式在字符串中查找@符号

时间:2019-04-04 00:43:36

标签: java regex

我需要有关正则表达式的帮助,以便它可以查找正在搜索的字符串中是否有@符号。

import java.util.regex.*;
public class OnlineNewspaperSubscription extends NewspaperSubscription
{
    public void setAddress(String a)
    {

         address = a;

        // Creating a pattern from regex
        Pattern pattern
            = Pattern.compile("@*");

        // Get the String to be matched
        String stringToBeMatch = a;

        // Create a matcher for the input String
        Matcher matcher = pattern.matcher(stringToBeMatch);

       if(matcher.matches())
        {
            super.rate = 9;

        }
       else
        {
            super.rate = 0;
            System.out.println("Need an @ sign");
        }

    }

}

我应该能够知道此字符串是否是电子邮件地址。

2 个答案:

答案 0 :(得分:2)

您不需要正则表达式即可在'@'中找到String的索引;使用String.indexOf(int)(传递char)。喜欢,

int p = a.indexOf('@');
if (p > -1) {
    // ...
}

答案 1 :(得分:0)

您不需要为此使用正则表达式,这太过分了。您可以只使用Java 1.5中可用的String类中的方法contains()(如果我没记错的话)。此方法实际上确实在内部使用indexOf()

System.out.println("Does not contain :" + "Does not contain".contains("@"));
System.out.println("Does cont@in :" + "Does not cont@in".contains("@"));

输出:

Does not contain @:false
Does contain @:true

注释:

  

如果您要验证电子邮件地址的格式,   仅检查@是否存在,我建议   为此使用正则表达式。

     

示例https://stackoverflow.com/a/8204716/8794221