正規表現を可視化してまとめたチートシート


調べたり、実際にためしたものの正規表現を可視化したものまとめ。
正規表現の可視化するために利用しているサービスは[regexper.com](https://regexper.com/)です。
各正規表現のチェックには[rubular.com](http://rubular.com/)などを利用して確認する。

正規表現の表記についてはこちらを参考にしてもらえればと思います。
[正規表現の基本](https://qiita.com/sea_ship/items/7c8811b5cf37d700adc4)


随時アップ

## 利用頻度が高い
|説明|正規表現|可視化|
|:---|---|---|
|半角英数字のみ（空文字OK）|/^[0-9a-zA-Z]*$/|![image (24).png](https://qiita-image-store.s3.amazonaws.com/0/30329/965fb3cd-c562-c4a6-b6d3-68f24e37c491.png)|
|全角ひらがな（空文字OK）|^[ぁ-んー]*$|![image (23).png](https://qiita-image-store.s3.amazonaws.com/0/30329/a74cf2a8-5f05-03af-7aef-113192c7f751.png)|
|全角カタカナ（空文字OK）|^[ァ-ンヴー]*$|![image (26).png](https://qiita-image-store.s3.amazonaws.com/0/30329/23ebd207-c0ad-4bc3-28ce-ed1500cb6cf0.png)|
|8文字以上の半角英数字|^([a-zA-Z0-9]{8,})$|![image (22).png](https://qiita-image-store.s3.amazonaws.com/0/30329/3422ca55-44ed-79a9-889b-6699a8d0fd4d.png)|
|半角英数記号のみ（空文字OK）|^[a-zA-Z0-9!-/:-@[-`{-~]*$|![image (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/30329/182e4c05-0c9e-cf26-81ce-dfbcd72eb083.png)
|


## 汎用的なもの

### 郵便番号・住所
|説明|正規表現|可視化|
|:---|---|---|
|郵便番号|[0-9]{3}-?[0-9]{4}|![image (4).png](https://qiita-image-store.s3.amazonaws.com/0/30329/67076d66-5af5-b60a-67e1-4d1cf6947ce1.png)|
|郵便番号（マーク付き）|〒\s?[0-9]{3}-?[0-9]{4}|![image (17).png](https://qiita-image-store.s3.amazonaws.com/0/30329/58aedee7-3631-fcac-7021-c2f351841025.png)|
|都道府県（都道府県必須）|^.{2,3}[都道府県]$|![image (6).png](https://qiita-image-store.s3.amazonaws.com/0/30329/1d9c750b-4c46-7e09-ef45-01f0d595a9dd.png)|
|都道府県（都道府県なし）|^.{2,3}[都道府県]?$|![image (7).png](https://qiita-image-store.s3.amazonaws.com/0/30329/ac5f0b6a-8fa5-5b1b-2113-16628ee5535f.png)|

### 電話番号
|説明|正規表現|可視化|
|:---|---|---|
|固定電話かっこありなし|^\(?(\d{2}&#124;\d{4})[)-]?\d{2,4}-\d{4}$|![image (18).png](https://qiita-image-store.s3.amazonaws.com/0/30329/42d6b9f0-7023-71cc-7da8-dfd5c77dcfb5.png)|
|キャリア端末ハイフンありなし|^0[789]0(-\d{4}-\d{4}&#124;\d{8})$|![image (19).png](https://qiita-image-store.s3.amazonaws.com/0/30329/3ab6442d-1003-4ee1-9d1c-87ea34011e1c.png)|
|IP電話|^050(-\d{4}-\d{4}&#124;\d{8})$|![image (21).png](https://qiita-image-store.s3.amazonaws.com/0/30329/8405aa6a-4284-be6b-be7c-f4cdc53995bf.png)|
|フリーダイアル|^0120(-\d{3}-\d{3}&#124;\d{6})$|![image (20).png](https://qiita-image-store.s3.amazonaws.com/0/30329/fbeccaaa-2f93-b121-d8e5-07e528d9fa1c.png)|

### クレジットカード
|説明|正規表現|可視化|
|:---|---|---|
|VISA [^1]| ^4[0-9]{12}(?:[0-9]{3})?$|![image (9).png](https://qiita-image-store.s3.amazonaws.com/0/30329/3f3bc3b7-57dd-428c-c67d-c30c76f5e5d0.png)|
|MasterCard [^2]|^5[1-5][0-9]{14}$|![image (10).png](https://qiita-image-store.s3.amazonaws.com/0/30329/324f78c6-ef9e-3c22-b717-a61f7f5e1463.png)|
|Discover Card [^3]|6011[0-9]{12}|![image (11).png](https://qiita-image-store.s3.amazonaws.com/0/30329/d1845291-bfd3-dd1a-dbe0-73165b6a6e24.png)|
|Diners Club [^4]|`^3(?:0[0-5]\|[68][0-9])[0-9]{11}$\|^6(?:011\|5[0-9][0-9])[0-9]{12}$`|![image (13).png](https://qiita-image-store.s3.amazonaws.com/0/30329/7eafddc0-9b58-add1-8304-6917645d3f0e.png)|
|American Express [^5]|^3[47][0-9]{13}$|![image (14).png](https://qiita-image-store.s3.amazonaws.com/0/30329/af7b0602-e3b4-57d3-95cf-3a43ef06a6d9.png)|
|JCB Card [^6]|^3[0-9]{15}$|![image (15).png](https://qiita-image-store.s3.amazonaws.com/0/30329/95c07400-94ff-3e07-d2ef-2755585760e9.png)|
|上記の全て|(?:4[0-9]{12}(?:[0-9]{3})?&#124;5[1-5][0-9]{14}&#124;6011[0-9]{12}&#124;3(?:0[0-5]&#124;[68][0-9])[0-9]{11}&#124;3[47]\{13}&#124;(?:2131&#124;1800&#124;35[0-9]{3})[0-9]{11})|![image (16).png](https://qiita-image-store.s3.amazonaws.com/0/30329/cb140439-050b-ba3e-2385-fb78a808aa89.png)|


[^1]: VISA クレジットカードのパターンについては公式の確認はしておりません。
[^2]: MasterCardクレジットカードのパターンについては公式の確認はしておりません。
[^3]: Discover Cardクレジットカードのパターンについては公式の確認はしておりません。
[^4]: Diners Clubクレジットカードのパターンについては公式の確認はしておりません。
[^5]: American Expressクレジットカードのパターンについては公式の確認はしておりません。
[^6]: JCB Cardクレジットカードのパターンについては公式の確認はしておりません。

### IT

|説明|正規表現|可視化|
|:---|---|---|
|IPアドレス|`\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}`|![image (1).png](https://qiita-image-store.s3.amazonaws.com/0/30329/d56a64a5-3779-a031-5043-2767e5920d67.png)|
|MAC アドレス|`(?:[0-9a-fA-F]{2}\:){5}[0-9a-fA-F]{2}`|![image (2).png](https://qiita-image-store.s3.amazonaws.com/0/30329/ca446f02-3edb-4648-ca31-5f5db4fa9e1a.png)|

### 自動車登録番号標

|説明|正規表現|可視化|
|:---|---|---|
|ひらがな・英字 (一文字)|^(?=.*[あ-んEHKMTY])(?!.*[おしへん]).{1}$|![image (38).png](https://qiita-image-store.s3.amazonaws.com/0/30329/9a462515-54c5-ca3f-3baf-a1c6b1c86b96.png)|
|ナンバープレート|^(・&#124;\d){2}-?(・&#124;\d{1})\d{1}$|![image (39).png](https://qiita-image-store.s3.amazonaws.com/0/30329/b37f1dcf-39bc-347f-4325-5db10fda05df.png)|

## 超難解編


### 参考にしたサイト
[初心者歓迎！手と目で覚える正規表現入門・その１「さまざまな形式の電話番号を検索しよう」](https://qiita.com/jnchito/items/64c3fdc53766ac6f2008)
[IBM Knowledge Center_一般的な正規表現](https://www.ibm.com/support/knowledgecenter/ja/SS42VS_DSM/c_LSX_guide_commonregex.html)
[クレジットカード番号を判別したい](https://wepicks.net/phpsample-preg-card/)
[【Java入門】電話番号の正規表現の書き方！](https://eng-entrance.com/java-reg-tel)
[[JavaScript] 正規表現パターンサンプル集](https://javascript.programmer-reference.com/js-regexp-sample/)