[Java]メールアドレス構文チェック

Javaで正規表現を用いてメールアドレスの
構文をチェックするサンプルプログラムです。

正規表現

String mailFormat = "^[a-zA-Z0-9!#$%&'_`/=~\\*\\+\\-\\?\\^\\{\\|\\}]+(\\.[a-zA-Z0-9!#$%&'_`/=~\\*\\+\\-\\?\\^\\{\\|\\}]+)*+(.*)@[a-zA-Z0-9][a-zA-Z0-9\\-]*(\\.[a-zA-Z0-9\\-]+)+$";

全体コード

public class PatternMatch {
	public static void main(String[] args) {
		String mailFormat = "^[a-zA-Z0-9!#$%&'_`/=~\\*\\+\\-\\?\\^\\{\\|\\}]+(\\.[a-zA-Z0-9!#$%&'_`/=~\\*\\+\\-\\?\\^\\{\\|\\}]+)*+(.*)@[a-zA-Z0-9][a-zA-Z0-9\\-]*(\\.[a-zA-Z0-9\\-]+)+$";

		String mail1 = "test";
		String mail2 = "test@";
		String mail3 = "test@example";
		String mail4 = "test@example.com";
		String mail5 = "test@example.co.jp";
		String mail6 = "@example.com";
		String mail7 = "@example.co.jp";
		String mail8 = "test.co.jp@example.co.jp";

		if( mail1.matches(mailFormat) ) {
			System.out.println( mail1 + " >> TRUE" );
		}
		else {
			System.out.println( mail1 + " >> FALSE" );
		}

		if( mail1.matches(mailFormat) ) {
			System.out.println( mail2 + " >> TRUE" );
		}
		else {
			System.out.println( mail2 + " >> FALSE" );
		}

		if( mail3.matches(mailFormat) ) {
			System.out.println( mail3 + " >> TRUE" );
		}
		else {
			System.out.println( mail3 + " >> FALSE" );
		}

		if( mail4.matches(mailFormat) ) {
			System.out.println( mail4 + " >> TRUE" );
		}
		else {
			System.out.println( mail4 + " >> FALSE" );
		}

		if( mail5.matches(mailFormat) ) {
			System.out.println( mail5 + " >> TRUE" );
		}
		else {
			System.out.println( mail5 + " >> FALSE" );
		}

		if( mail6.matches(mailFormat) ) {
			System.out.println( mail6 + " >> TRUE" );
		}
		else {
			System.out.println( mail6 + " >> FALSE" );
		}

		if( mail7.matches(mailFormat) ) {
			System.out.println( mail7 + " >> TRUE" );
		}
		else {
			System.out.println( mail7 + " >> FALSE" );
		}

		if( mail8.matches(mailFormat) ) {
			System.out.println( mail8 + " >> TRUE" );
		}
		else {
			System.out.println( mail8 + " >> FALSE" );
		}
	}
}

解説

正規表現の比較はString関数[matches]の引数に
対象となるフォーマットを渡すことで可能です。
今回の例題における各返り値は下記の通りです。
変数[mail1] ==>「FALSE」
変数[mail2] ==>「FALSE」
変数[mail3] ==>「FALSE」
変数[mail4] ==>「TRUE」
変数[mail5] ==>「TRUE」
変数[mail6] ==>「FALSE」
変数[mail7] ==>「FALSE」
変数[mail8] ==>「TRUE」


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)