【ヒント】汎用正規表現
By hientd, at: 2023年8月2日14:22
Estimated Reading Time: __READING_TIME__ minutes
![[TIPS] Widely-used REGEX](/media/filer_public_thumbnails/filer_public/24/ab/24ab7b15-657c-4f4b-9296-d036fd89a6a4/useful_string_regex.png__1500x900_crop_subsampling-2_upscale.png)
![[TIPS] Widely-used REGEX](/media/filer_public_thumbnails/filer_public/24/ab/24ab7b15-657c-4f4b-9296-d036fd89a6a4/useful_string_regex.png__400x240_crop_subsampling-2_upscale.png)
メールアドレスの検証、文字列からの数値の抽出、パスワードが特定の基準を満たしていることの確認などが必要になったことがあるなら、正規表現(regex)の威力を知っているでしょう。最初は難しそうに見えるかもしれませんが、コツをつかめば非常に便利です。
この記事では、私のプロジェクトで頻繁に使用している、最も一般的で便利な正規表現パターンをいくつか集めました。ベテランの開発者でも、初心者の方でも、これらのパターンは時間を節約し、コーディングの生活を楽にします。
メールアドレス検証
メールアドレスに一致します。英数字(.
、_
、%
、+
、-
を含む)、@
記号、ドメイン名、ドット、最短2文字のトップレベルドメインで始まります。
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
電話番号検証(米国)
国番号を省略可能な米国の電話番号に一致します。+1 (123) 456-7890
、(123) 456-7890
、123-456-7890
などの形式に対応しています。
^(\+\d{1,2}\s?)?(\(\d{3}\)|\d{3})[-.\s]?\d{3}[-.\s]?\d{4}$
URL検証
www
を省略可能なHTTP/HTTPS URLに一致します。サブドメインを含むドメイン名と、末尾のスラッシュを省略可能です。
^https?:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z]{2,})+\/?$
日付検証(YYYY-MM-DD)
YYYY-MM-DD
形式の日付に一致します。有効な月(01~12)と日(01~31)の値が確認されます。
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
郵便番号検証(米国)
12345
または12345-6789
形式の米国の郵便番号に一致します。
^\d{5}(-\d{4})?$
IPv4アドレス検証
0.0.0.0
から255.255.255.255
までの値を許可するIPv4アドレスに一致します。
^(\d{1,3}\.){3}\d{1,3}$
16進カラーコード
#
の有無にかかわらず、3桁または6桁形式の16進カラーコードに一致します。
^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$
ユーザー名検証
3~16文字の長さで、英字、数字、ドット、アンダースコア、ハイフンを含むユーザー名に一致します。
^[a-zA-Z0-9._-]{3,16}$
パスワード検証
少なくとも1つの小文字、1つの大文字、1つの数字、1つの特殊文字を含み、8文字以上のパスワードに一致します。
(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}
空白トリミング
文字列の先頭または末尾の空白に一致します。入力データからスペースをトリミングするのに便利です。
^\s+|\s+$