Java11 正規表現によるメールアドレスチェックを実装するサンプル

環境
Java SE 11
Eclipse 4.26.0

構文
メールアドレスの正規表現式

^[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+(\\.[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+)*@[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+(\\.[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+)*$

書式
Pattern pattern = Pattern.compile(“正規表現式");
result = pattern.matcher(文字列).matches();
Patternクラスを使ってメールアドレスチェックを行います。

使用例

package com.arkgame.study;

import java.util.regex.Pattern;

public class AppDemo {

      public static void main(String[] args) {

            System.out.println("test@example.comのチェック結果: " + isMailAddr("test@example.com"));
            System.out.println("test.123@example.comのチェック結果: " + isMailAddr("test.123@example.com"));
            System.out.println("testabcのチェック結果: " + isMailAddr("testabc"));
            System.out.println("test.@example.comのチェック結果: " + isMailAddr("test.@example.com"));
      }

      /**
       * メールアドレスのチェック
       * 
       * @param val
       * @return メールアドレス true メールアドレスではない false
       */
      public static boolean isMailAddr(String val) {
            boolean result = false;
            if (val != null) {
                  //正規表現式のチェック
                  Pattern pattern = Pattern.compile(
                              "^[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+(\\.[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+)*@[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+(\\.[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+)*$");
                  result = pattern.matcher(val).matches();
            }
            return result;
      }
}

実行結果
test@example.comのチェック結果: true
test.123@example.comのチェック結果: true
testabcのチェック結果: false
test.@example.comのチェック結果: false

Java

Posted by arkgame