Java正規表現 – エンジニアの入り口 https://eng-entrance.com 「エンジニアの入り口」は、プログラミング入門やエンジニアリング入門の知識が満載の初心者のための勉強サイトです。プログラミングやサーバ、ネットワークの基礎知識や勉強方法を習得できます。 Fri, 03 Mar 2017 05:08:01 +0000 ja hourly 1 https://wordpress.org/?v=5.2.19 【Java入門】電話番号の正規表現の書き方! https://eng-entrance.com/java-reg-tel https://eng-entrance.com/java-reg-tel#comments Wed, 23 Nov 2016 02:16:25 +0000 http://eng-entrance.com/?p=3450 新規登録のフォームを作成しているときなど、電話番号を正規表現で確認してエラーチェックをしたいということはよくあるだろう。なんらかのデータ移行作業にJavaを使っているようなときも同様だ。

このページではJavaおよび他のプログラミング言語で、電話番号をどうやって正規表現で書けばいいかをまとめている。参考にしてほしい。

正規表現による電話番号の扱い方

Javaの正規表現を使うと、電話番号のチェックをしたりテキストの中から電話番号を抽出したりすることができる。

最初に、対象となる電話番号はどのような形式があるのかを確認しておこう。固定電話の場合は、先頭が0である、その後市外局番と市内局番をあわせた5桁の数字、さらに4桁の加入者番号の数字が続く。市外局番と市内局番は地域によってその桁数が異なっている。市外局番、市内局番と加入者番号の各番号は、一般的にハイフン[-]で区切られている。

  • 03-2222-2222 (東京)
  • 0422-22-2222 (東京都小金井市)

また、最初の0と市外局番が括弧[( )]で囲まれる形式もある。

  • (03)2222-2222
  • (0422)22-2222

携帯電話の場合は、先頭の3文字が070、080、090である。その後、4桁の数字、さらに4桁の数字が続く。

  • 070-2222-2222
  • 080-2222-2222
  • 090-2222-2222

IP電話の場合は、先頭の3文字が050である。その後、携帯電話と同じように4桁の数字、さらに4桁の数字が続く。

  • 050-2222-2222

フリーダイヤルの場合は、先頭が0120である。その後、3桁の数字、さらに3桁の数字が続く。

  • 0120-222-222

Javaにおける電話番号の正規表現

では、これらの電話番号の正規表現はどうなるかを見てみよう。電話番号と対応する正規表現は以下のようになる。固定電話は、市外局番と市内局番の形式が他にもあるが、ここではその中のふたつを取り上げた。

基本は次のような表記になる。

0\d{1,4}-\d{1,4}-\d{4}

電話番号の種類

電話番号

正規表現

固定電話

03-2222-2222

^0\d-\d{4}-\d{4}$

0422-22-2222

^0\d{3}-\d{2}-\d{4}$

(03)2222-2222

^\(0\d\)\d{4}-\d{4}$

(0422)22-2222

^\(0\d{3}\)\d{2}-\d{4}$

携帯電話

070-2222-2222

080-2222-2222

090-2222-2222

^(070|080|090)-\d{4}-\d{4}$

IP電話

050-2222-2222

^050-\d{4}-\d{4}$

フリーダイヤル

0120-222-222

^0120-\d{3}-\d{3}$

各プログラミング言語における正規表現表記

この比較表は、Java以外のプログラミング言語で東京の固定電話番号の正規表現を扱うとどうなるかを示している。

電話番号

言語

正規表現

03-2222-2222

Java

^0\d-\d{4}-\d{4}$

Ruby

Javaと同じ

PHP

/^0\d-\d{4}-\d{4}$/

C/C++

Javaと同じ

電話番号をチェックするサンプルプログラム

それでは実際にサンプルプログラムを確認してみよう。このサンプルプログラムでは、電話番号が形式に合致しているかどうか正規表現を使ってチェックしている。電話番号「03-2222-1111」については、番号が正しい場合だけでなく、誤った場合に不正な番号として検出されることも確認している。

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class CheckTelephoneNumber {
	public static void main(String args[]) {
		checkRightTelephoneNumbers();//[1]
		checkWrongTelephoneNumbers();//[2]
	}
	private static void checkRightTelephoneNumbers() {//[3]
		System.out.println("[4] 正しい電話番号");
		checkTelephoneNumberByRegularExpression("03-1111-2222");//[5]
		checkTelephoneNumberByRegularExpression("(03)3333-4444");//[6];
		checkTelephoneNumberByRegularExpression("070-5555-6666");//[7]
		checkTelephoneNumberByRegularExpression("050-7777-8888");//[8]
		checkTelephoneNumberByRegularExpression("0120-222-222");//[9]
	}

	private static void checkWrongTelephoneNumbers() {//[10]
		System.out.println("[11] 誤った電話番号");
		checkTelephoneNumberByRegularExpression("0-1111-2222");//[12]
		checkTelephoneNumberByRegularExpression("03-111-2222");//[13]
		checkTelephoneNumberByRegularExpression("03-1111-222");//[14]
		checkTelephoneNumberByRegularExpression("031-1111-2222");//[15]
		checkTelephoneNumberByRegularExpression("03-11111-2222");//[16]
		checkTelephoneNumberByRegularExpression("03-1111-22221");//[17]
		checkTelephoneNumberByRegularExpression("0X-1111-2222");//[18]
		checkTelephoneNumberByRegularExpression("03-111X-2222");//[19]
		checkTelephoneNumberByRegularExpression("03-1111-222X");//[20]
		checkTelephoneNumberByRegularExpression("03A1111-2222");//[21]
		checkTelephoneNumberByRegularExpression("03-1111A2222");//[22]
	}
	private static void checkTelephoneNumberByRegularExpression(String number) {//[30]
		boolean result;//[31]
		result = checkTelephoneNumber(number, "^0\\d-\\d{4}-\\d{4}$", "固定");//[32]
		if (result)	return;;//[33]
		result = checkTelephoneNumber(number, "^\\(0\\d\\)\\d{4}-\\d{4}$", "固定");//[34]
		if (result)	return;;//[35]
		result = checkTelephoneNumber(number, "^(070|080|090)-\\d{4}-\\d{4}$", "携帯");//[36]
		if (result)	return;;//[37]
		result = checkTelephoneNumber(number, "^050-\\d{4}-\\d{4}$", "IP");//[38]
		if (result)	return;;//[39]
		result = checkTelephoneNumber(number, "^0120-\\d{3}-\\d{3}$", "フリーダイアル");//[40]
		if (result)	return;;//[41]
		System.out.println("[42] 不正な電話番号:" + number);
	}
	private static boolean checkTelephoneNumber(String number, String regularExpression, String type) {//[50]
		Pattern pattern = Pattern.compile(regularExpression);//[51]
		Matcher matcher = pattern.matcher(number);//[52]
		if (matcher.find()) {//[53]
			System.out.println("[54] " + type + "電話番号:" + matcher.group());
			return true;//[55]
		}
		return false;//[56]
	}
}

実行結果

[4] 正しい電話番号
[54] 固定電話番号:03-1111-2222
[54] 固定電話番号:(03)3333-4444
[54] 携帯電話番号:070-5555-6666
[54] IP電話番号:050-7777-8888
[54] フリーダイアル電話番号:0120-222-222
[11] 誤った電話番号
[42] 不正な電話番号:0-1111-2222
[42] 不正な電話番号:03-111-2222
[42] 不正な電話番号:03-1111-222
[42] 不正な電話番号:031-1111-2222
[42] 不正な電話番号:03-11111-2222
[42] 不正な電話番号:03-1111-22221
[42] 不正な電話番号:0X-1111-2222
[42] 不正な電話番号:03-111X-2222
[42] 不正な電話番号:03-1111-222X
[42] 不正な電話番号:03A1111-2222
[42] 不正な電話番号:03-1111A2222

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

このサンプルプログラムでは、正しい形式の電話番号と誤った形式の電話番号をチェックして、正規表現によって正しくチェックが行われるかをテストしている。

テストに使用した正しい形式の電話番号は次の通りである。

電話番号の種類

電話番号

固定電話

03-2222-2222

(03)3333-4444

携帯電話

070-5555-6666

IP電話

050-7777-8888

フリーダイヤル

0120-222-222

テストに使用した誤った形式の電話番号は次の通りである。

電話番号

不正な箇所

0-1111-2222

最初の2桁の桁数が不足

03-111-2222

2番目の4桁の桁数が不足

03-1111-222

最後の4桁の桁数が不足

031-1111-2222

最初の2桁の桁数が超過

03-11111-2222

2番目の4桁の桁数が超過

03-1111-22221

最後の4桁の桁数が超過

0X-1111-2222

最初の2桁の桁に数値以外の文字の混入

03-111X-2222

2番目の4桁の桁に数値以外の文字の混入

03-1111-222X

最後の4桁の桁に数値以外の文字の混入

03A1111-2222

最初のハイフンがハイフン以外の文字

03-1111A2222

最後のハイフンがハイフン以外の文字

正しい形式ならば、電話番号の種類に加えて形式にマッチした電話番号を表示する。また、どの形式にもマッチしなかったならば、「不正な電話番号」として元の文字列をそのまま表示している。

まとめ

このページでは電話番号の正規表現の書き方をまとめてきた。Javaをメインとして他の言語でも、書き方を簡単にお伝えしている。

電話番号の正規表現を使うときには確認してみて欲しい。

]]>
https://eng-entrance.com/java-reg-tel/feed 2
【Java入門】郵便番号の正規表現の書き方まとめ https://eng-entrance.com/java-reg-postal https://eng-entrance.com/java-reg-postal#respond Tue, 22 Nov 2016 00:57:30 +0000 http://eng-entrance.com/?p=3430 住所入力フォームで入れておきたいのが、正規表現による郵便番号のエラーチェックだ。

Javaでの正規表現による郵便番号の扱い方についてこのページではまとめている。参考にして欲しい。

正規表現による郵便番号の扱い方

Javaの正規表現を使うと、郵便番号のチェックをしたりテキストの中から郵便番号を抽出したりすることができる。

最初に、対象となる郵便番号はどのような形式があるのかを確認しておこう。郵便番号の基本的な形式は、一般的に数字3桁に続く数字4桁をハイフン「-」で繋げたものだ。これに加えて、郵便番号が先頭に付いているものや、ハイフンがない数字だけのものもある。

  • 333-5555
  • 〒 333-5555
  • 3335555

正規表現

では、これらの郵便番号の正規表現はどうなるか見てみよう。郵便番号と対応する正規表現は以下のようになる。

郵便番号の種類

郵便番号

正規表現

基本

333-5555

^[0-9]{3}-[0-9]{4}$

郵便マーク付き

〒 333-5555

^〒\s[0-9]{3}-[0-9]{4}$

ハイフン無し

3335555

^[0-9]{7}$

各プログラミング言語における正規表現表記

この比較表は、Java以外のプログラミング言語で基本郵便番号の正規表現を扱うとどうなるかを示している。

ほとんど変わらない感覚だ。

郵便番号

言語

正規表現

333-5555

Java

[0-9]{3}-[0-9]{4}

Ruby

Javaと同じ

PHP

/[0-9]{3}-[0-9]{4}/

C/C++

Javaと同じ

郵便番号をチェックするサンプルプログラム

それでは実際にサンプルプログラムを確認してみよう。このサンプルプログラムでは、郵便番号が形式に合致しているかどうか正規表現を使ってチェックしている。郵便番号「333-5555」については、番号が正しい場合だけでなく、誤った場合に不正な番号として検出されることも確認している。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CheckZipCode {
	public static void main(String args[]) {
		checkRightZipCodes();//[1]
		checkWrongZipCodes();//[2]
	}
	private static void checkRightZipCodes() {//[3]
		System.out.println("[4] 正しい郵便番号");
		checkZipCodeByRegularExpression("333-5555");//[5]
		checkZipCodeByRegularExpression("〒 333-5555");//[6];
		checkZipCodeByRegularExpression("3335555");//[7]
	}
	private static void checkWrongZipCodes() {//[8]
		System.out.println("[9] 誤った郵便番号");
		checkZipCodeByRegularExpression("33-5555");//[10]
		checkZipCodeByRegularExpression("333-555");//[11]
		checkZipCodeByRegularExpression("3333-5555");//[12]
		checkZipCodeByRegularExpression("333-55555");//[13]
		checkZipCodeByRegularExpression("3A3-5555");//[14]
		checkZipCodeByRegularExpression("333-5X55");//[15]
	}
	private static void checkZipCodeByRegularExpression(String code) {//[20]
		boolean result;//[21]
		result = checkZipCode(code, "^[0-9]{3}-[0-9]{4}$", "基本の");//[22]
		if (result)	return;;//[23]
		result = checkZipCode(code, "^〒\\s[0-9]{3}-[0-9]{4}$", "マーク付き");//[24]
		if (result)	return;;//[25]
		result = checkZipCode(code, "^[0-9]{7}$", "ハイフンのない");//[26]
		if (result)	return;;//[27]
		System.out.println("[28] 不正な郵便番号:" + code);
	}
	private static boolean checkZipCode(String code, String regularExpression, String type) {//[40]
		Pattern pattern = Pattern.compile(regularExpression);//[41]
		Matcher matcher = pattern.matcher(code);//[42]
		if (matcher.find()) {//[43]
			System.out.println("[44] " + type + "郵便番号:" + matcher.group());
			return true;//[45]
		}
		return false;//[46]
	}
}

実行結果

[4] 正しい郵便番号
[44] 基本の郵便番号:333-5555
[44] マーク付き郵便番号:〒 333-5555
[44] ハイフンのない郵便番号:3335555
[9] 誤った郵便番号
[28] 不正な郵便番号:33-5555
[28] 不正な郵便番号:333-555
[28] 不正な郵便番号:3333-5555
[28] 不正な郵便番号:333-55555
[28] 不正な郵便番号:3A3-5555
[28] 不正な郵便番号:333-5X55

サンプルプログラムの説明

このサンプルプログラムでは、正しい形式の郵便番号と誤った形式の郵便番号をチェックして、正規表現によって正しくチェックが行われるかをテストしている。

テストに使用した正しい形式の郵便番号は次の通りである。

郵便番号

郵便番号の種類

333-5555

基本

〒 333-5555

郵便マーク付き

3335555

ハイフン無し

テストに使用した誤った形式の郵便番号は次の通りである。

郵便番号

不正な箇所

33-5555

最初の3桁の桁数が不足

333-555

最後の4桁の桁数が不足

3333-5555

最初の3桁の桁数が超過

333-55555

最後の4桁の桁数が超過

3X3-5555

最初の3桁に数値以外の文字の混入

333-5X55

最後の4桁に数値以外の文字の混入

正しい形式ならば、郵便番号の種類に加えて形式にマッチした郵便番号を表示する。また、どの形式にもマッチしなかったならば、「不正な郵便番号」として元の文字列をそのまま表示している。

まとめ

このページでは主にJavaでの郵便番号の正規表現についてお伝えした。作りがシンプルなだけに書き方も簡単だ。

正規表現の練習にちょうどいいと思うので、一度書いて見てからチェックするのもいいだろう。

]]>
https://eng-entrance.com/java-reg-postal/feed 0
【Java初心者向け】メールアドレスの正規表現の書き方まとめ https://eng-entrance.com/programming-reg-mail https://eng-entrance.com/programming-reg-mail#respond Tue, 08 Nov 2016 00:50:06 +0000 http://eng-entrance.com/?p=3275 メールアドレスは正規表現でよくチェックするもののひとつだろう。

JavaやPHPなどを含めたプログラミングごとの正規表現の書き方と、実際のサンプルプログラムを用意してみた。参考にしていただければと思う。

正規表現によるメールアドレスの扱い方

正規表現を使うと、メールアドレスのチェックをしたり、テキストの中からメールアドレスを抽出したりすることができる。

メールアドレス

最初に、対象となるメールアドレスはどのような仕様に基づいているかを確認しておこう。

メールアドレスに関して最新の仕様と言えそうなものが、RFC 5322 (Internet Message Format)の「3.4.1.  Addr-Spec Specification」に定義されている。厳密にこの仕様を正規表現で実現したいのであれば、最新の仕様をじっくり読んで理解したうえで独自に正規表現を定義してください。また、@の前に「.」を許すような仕様は今回含んでいません。

ここでは、RFC 5322仕様の中の「dot-atom」に記載された仕様に従ってメールアドレスの形式を説明している。

RFC 5322に規定されているメールアドレスの形式は次の通りです。「@」を挟んでlocal-partとdomainの二つの部分に分かれている。

基本形式 local-part @ domain

使える文字

「domain」も、「local-part」で使用可能な文字とは、以下の文字である。

半角英数字

or

「!#$%&'*+-/=?^_`{|}~」

「local-part」は、一文字以上の使用可能文字である。さらに、「.」に続けて一文字以上の使用可能文字をセットとして複数追加することができる。しかし、「.」だけを最後の文字として追加することはできない。

「domain」も、「local-part」と同じ規則が適用される。

正規表現

では、このメールアドレスの仕様に基づいた正規表現はどうなるか見てみよう。メールアドレスの正規表現は以下のようになる。とりあえずJavaのバージョンだ。

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

この正規表現は、複雑なのでどのような構造になっているかを説明しておく。

aTextが使用可能な文字の正規表現である。そのaTextによってドッドを含む文字列の正規表現dotAtomを作る。dotAtomの先頭は一文字以上のaTextである。最終的にメールアドレスの正規表現はdotAtomによって定義される構造になっている。

・ aText = [a-zA-Z0-9!#%&'/=_~`\*\+\?\{\}\^\$\-\|]

・ dotAtom = aText + "+" + "(\\." + aText + "+)*"

・ メールアドレスの正規表現 = dotAtom + "@" + dotAtom

よくわからなければ、はじめはコピーアンドペーストで使っていただいて構わない。また、もっと簡単な制限をかけたり、もっとしっかりと制限をかけたりということもできる。

メールアドレスで使える文字も少しずつ変わっていっているので、ある程度適切な緩めの表現を使うのがいいだろう。

各プログラミング言語における正規表現表記

この比較表は、Java以外のプログラミング言語で東京の固定メールアドレスの正規表現を扱うとどうなるかを示している。

言語

正規表現

Java

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

Ruby

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

(Javaとほぼ同じだが、「/」を「\/」とする必要がある。)

PHP

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

(Javaと同じだが、「/」で挟まれている。また、「/」を「\/」とする必要がある。)

C/C++

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

(Javaとほぼ同じだが、「\w」を「[:w:]」に置き換える必要がある。)

メールアドレスをチェックするサンプルプログラム

それでは、実際にサンプルプログラムを確認してみよう。

このJavaのサンプルプログラムでは、メールアドレスが形式に合致しているかどうか正規表現を使ってチェックしている。メールアドレス「abc.def@efg.com」については、アドレスが正しい場合だけでなく、誤った場合に不正なアドレスとして検出されることも確認している。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CheckMailAddress {
	public static void main(String args[]) {
		checkRightMailAddresses();//[1]
		checkWrongMailAddresses();//[2]
	}
	private static void checkRightMailAddresses() {//[3]
		System.out.println("[4] 正しいメールアドレス");
		checkMailAddressByRegularExpression("abc.def@efg.com");//[5]
		checkMailAddressByRegularExpression("abcABC123.defDEF456@ghiGHI789.comCOM012");//[6]
		checkMailAddressByRegularExpression("#%&'/=~`*+?{}^$-|.def@ghi.com");//[7]
		checkMailAddressByRegularExpression("abc.#%&'/=~`*+?{}^$-|@ghi.com");//[8]
		checkMailAddressByRegularExpression("abc.def@#%&'/=~`*+?{}^$-|.com");//[9]
		checkMailAddressByRegularExpression("abc.def@ghi.#%&'/=~`*+?{}^$-|");//[10]
	}
	private static void checkWrongMailAddresses() {//[11]
		System.out.println("[12] 誤ったメールアドレス");
		checkMailAddressByRegularExpression("abc.@ghi.com");//[13]
		checkMailAddressByRegularExpression("abc.def@.com");//[14]
		checkMailAddressByRegularExpression("ab<c.def@ghi.com");//[15]
		checkMailAddressByRegularExpression("abc.de<f@ghi.com");//[16]
		checkMailAddressByRegularExpression("abc.def@gh<i.com");//[17]
		checkMailAddressByRegularExpression("abc.def@ghi.co<m");//[18]
	}
	private static void checkMailAddressByRegularExpression(String address) {//[20]
		boolean result;//[21]
		String aText = "[\\w!#%&'/=~`\\*\\+\\?\\{\\}\\^\\$\\-\\|]";//[22]
		String dotAtom = aText + "+" + "(\\." + aText + "+)*";//[23]
		String regularExpression = "^" + dotAtom + "@" + dotAtom + "$";//[24]
		result = checkMailAddress(address, regularExpression);//[25]
		if (result)	return;;//[26]
		System.out.println("[27] 不正なメールアドレス:" + address);
	}
	private static boolean checkMailAddress(String address, String regularExpression) {//[40]
		Pattern pattern = Pattern.compile(regularExpression);//[41]
		Matcher matcher = pattern.matcher(address);//[42]
		if (matcher.find()) {//[43]
			System.out.println("[44] " + "メールアドレス:" + matcher.group());
			return true;//[45]
		}
		return false;//[46]
	}
}

実行結果

[4] 正しいメールアドレス
[34] メールアドレス:abc@def.com
[34] メールアドレス:a.bcABC123@defDEF456.comCOM789
[34] メールアドレス:#.#%&'/=~`*+?{}^$-|@def.com
[34] メールアドレス:abc@#.#%&'/=~`*+?{}^$-|
[10] 誤ったメールアドレス
[27] 不正なメールアドレス:abc.@def.com
[27] 不正なメールアドレス:abc@.def.com
[27] 不正なメールアドレス:ab<c@def.com
[27] 不正なメールアドレス:abc@de<f.com
[27] 不正なメールアドレス:abc@def.c<m

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1] メソッドcheckRightMailAddresses(正しいメールアドレスのチェック)を呼び出す。
  • [2] メソッドcheckWrongMailAddresses(誤ったメールアドレスのチェック)を呼び出す。
  • [3] メソッドcheckRightMailAddressesを定義する。
  • [4] 「正しいメールアドレス」を表示する。
  • [5]-[7] 以下のメールアドレスをメソッドcheckMailAddressByRegularExpressionの引数として渡し、チェックする
  • [9] メソッドcheckMailAddressesを定義する。
  • [10] 「誤ったメールアドレス」を表示する。
  • [20] メソッドcheckMailAddressByRegularExpressionを定義する。
  • [21] 変数resultを定義する。
  • [22] aTextに使用可能な文字の正規表現を代入する。
  • [23] aTextによってドッドを含む文字列の正規表現を作り、dotAtomに代入する。
  • [24] dotAtomによってメールアドレスの正規表現を作り、メールアドレスの正規表現に代入する。
  • [22]-[26] メソッドcheckMailAddressを呼び出し、メールアドレスaddressを正規表現でチェックする。
  • [27] 「不正なメールアドレス:」に引数の「メールアドレス」を加えて表示する。
  • [40] メソッドcheckMailAddressを定義する。
  • [41] 指定された正規表現を持つPatternのインスタンスpatternを生成する。
  • [42] メールアドレスaddressを引数に指定してpatternからmatcherを取得する。
  • [43][44][45] メールアドレスが正規表現に一致していれば、メールアドレスを表示し、trueを戻す。
  • [46] falseを戻す。

まとめ

このページではメールアドレスの正規表現についてまとめてみた。

よく使うものだが、覚える必要はない。使いたくなったら、閲覧に来ていただければと思う。

]]>
https://eng-entrance.com/programming-reg-mail/feed 0