LoginSignup
7
1

More than 5 years have passed since last update.

正規表現でよく使うメタ文字を使った簡単な処理

Last updated at Posted at 2018-01-11

はじめに

正規表現でよく使うメタ文字で紹介したメタ文字を使い、簡単な正規表現を書いてみました。

郵便番号

・「数字」を3回繰り返した後「-」を挟んで「数字」を4回繰り返す。
・「数字」を4回繰り返した後「$」が入っているため、「-」含めて合計8桁である。

[0-9]{3}-[0-9]{4}$
入力値 結果         備考  
000-1111
0001111 × 「-」が入っていないため
00-1111 × 「-」前の数字が3つで無いため   
987-6543
111--2222 × 「-」が1つで無いため

メールアドレス

RFC規定のメールアドレスを作ろうとしますと、すごく長く複雑(下記リンク参照)になってしますので、キャリアメールなどで、設定出来る簡単なメールアドレスの正規表現を紹介させて頂きます。

・@前までに半角英数字記号(.-_)を使用できます。
・@前に「.」を使うことは出来ません。
・@後最初の「.」まで半角英数値のみ使用できます。
・連続ドット入力可能

[0-9a-zA-Z.\-_]*(?!\.).@([0-9a-zA-Z])+.[0-9a-zA-Z.\-]+$
入力値 結果         備考  
aa@aa.test
Test..a@aa.test.test                 
test.@aa.test × 「@」の前「.」が入っているため  
.001@aa.com
aa.test × 「@」が入っていないため
aa@aa × 「@」の後に「.」が入っていないため

下記のサイトに99%のEmail Addressに対応できる正規表現が書いてあります。
興味のある方は見てみてください。(別サイトに飛びます)
http://emailregex.com/

日付

・「1356789」、月の場合「1-31」まで入力可能
・「469」月の場合「1-30」まで入力可能
・11月の場合「1-30」まで入力可能
・12月の場合「1-31」まで入力可能
・2月の場合「1-29」まで入力可能

(^[1356789]([1-9]|[12][0-9]|[3][0-1]))$|(^[469]([1-9][12][0-9]|30))$|(^11([1-9]|[12][0-9]|30))$|(^12([1-9]|[12][0-9]|[3][0-1]))$|^2([1-9]|[12][0-9])$
入力値 結果         備考  
11
131                 
1311 × 13月は存在しないため  
1111  
40 40月または、4月0日は存在しないため
631 × 6月31日は存在しないため 
229
230 × 2月30日は存在しないため

MMdd方式(月と日付を2桁に揃える)にしたい場合は1桁の数字の前に「0」をつけることで、出来ます。

(0[1356789](0[1-9]|[12][0-9]|[3][0-1]))$)

まとめ

この他にも、正規表現を使って電話番号や、半角チェック、大文字小文字チェック、既定の入力文字チェックなどいろいろな事が出来ます。
また、メタ文字は紹介したもの以外にも便利な物がたくさんあります。(「\d」で半角数字を全て許容でき、「\D」と書くことで半角数字以外を全て許容出来るなど。)
ぜひ興味がある方は調べてみてください。

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1