まず、電子メールに正規表現を使用することは推奨されないことはわかっていますが、これをテストする必要があります。
次のような正規表現があります:
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
Java では、次のようにしました:
Pattern p = Pattern.compile("\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b");
Matcher m = p.matcher("[email protected]");
if (m.find())
System.out.println("Correct!");
ただし、電子メールが正しい形式であるかどうかに関係なく、正規表現は失敗します。Eclipse 内の「検索と置換」は、同じ正規表現で正常に機能します。
何か案が?
ありがとう、
ベストアンサー1
ちなみに、電子メール アドレスを検証するために使用する Java コードは次のとおりです。正規表現は非常に似ています。
public static final Pattern VALID_EMAIL_ADDRESS_REGEX =
Pattern.compile("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE);
public static boolean validate(String emailStr) {
Matcher matcher = VALID_EMAIL_ADDRESS_REGEX.matcher(emailStr);
return matcher.matches();
}
かなり確実に動作します。