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

環境
Java SE 11
Eclipse 4.26.0

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
^[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+(\\.[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+)*@[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+(\\.[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+)*$
^[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+(\\.[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+)*@[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+(\\.[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+)*$
^[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+(\\.[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+)*@[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+(\\.[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]+)*$

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

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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;
}
}
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; } }
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