正規表現とは、、?
文字列の集合を一つの文字列で表現する方法の一つである。
正規表現では、「メタ文字」という特殊な文字を使って表現します。(ちなみに全て半角です。)
メタ文字の種類と使い方
- なんでもいい1文字「.」
- 半角の「.」を使用すると、なんでもいい1文字を表現することができる。
-例-
私は.です
# =>私は鳥です、私は馬です、私は0です...etc
- 行の先頭と最後「^」「$」
- 行の先頭や最後にのみ存在する文字列を検索できる。
-例-
^ありがとう$
# =>「ありがとう」の文字だけのある行に合致
- 同じ文字の繰り返し「*」「+」「?」
- 「*」は、直前の文字がないか、直前の文字が1個以上連続するという意味。
- 「+」は、最低でも1個は + の直前の文字がないといけなく、その後は連続するという意味。
- 「?」は、直前の文字がまったくないか、1つだけあるという意味。
-例-
おー*い
# => おい、おーーい、おーーーーい...etc
おー+い
# =>おーい、おーーい、おーーーーい...etc
おー?い
# =>おい、おーい...etc
- いずれかの文字列「|」
- | で区切られた文字列のいずれかの文字列が存在した時に、正規表現に合致。
-例-
IBM|マイクロソフト|Apple|ネットスケープ
# =>IBM マイクロソフト Apple ネットスケープ
- 指定した文字のどれか「[ ]」
- で括られた中の文字は、その中のどれか1つに合致する。
- [ ]の中ではメタ文字は普通の文字として認識される。
-例-
A[A-Z]CCC
# =>A[ABCDEFGHIJKLMNOPQRSTUVWXYZ]CCC
A[0-9]CCC
# =>A[0123456789]CCC
A[A-Z0-9]CCC
# =>Aで始り、次の文字が半角の大文字アルファベットか数字で、CCCで終わる文字列の検索
- グループ化「( )」
- まとめて数文字単位で処理できる。
-例-
(じゃ)+ーん
# =>じゃーん、じゃじゃーん、じゃじゃじゃーん...etc
明日(ぼく|わたし)は帰宅します
# =>明日ぼくは帰宅します、明日わたしは帰宅します...etc
よく使う正規表現一覧
# 全て数値(全角)
/\A[0-9]+\z/
# 全て数値(半角)
/\A[0-9]+\z/
# 全て数値(全角,半角)
/\A[0-90-9]+\z/
# 半角アルファベット(小文字)
/\A[a-z]+\z/
# 半角アルファベット(大文字)
/\A[A-Z]+\z/
# 半角アルファベット(大文字・小文字)
/\A[a-zA-Z]+\z/
# 半角アルファベット(小文字・数値)
/\A[a-z0-9]+\z/
# 半角アルファベット(大文字・数値)
/\A[A-Z0-9]+\z/
# 半角アルファベット(大文字・小文字・数値)
/\A[a-zA-Z0-9]+\z/
# 全角ひらがな
/\A[ぁ-んー-]+\z/
# 全角カタカナ
/\A[ァ-ヶー-]+\z/
# 全角ひらがな、カタカナ
/\A[ぁ-んァ-ヶー-]+\z/
# 半角カナ
/\A[ァ-ン゙゚]+\z/
# 郵便番号(ハイフンあり3桁・5桁・7桁)
/\A\d{3}-\d{4}$|^\d{3}-\d{2}$|^\d{3}\z/
# 郵便番号(ハイフンあり5桁)
/\A\d{3}-\d{2}\z/
# 郵便番号(ハイフンあり7桁)
/\A\d{3}-\d{4}\z/
# 郵便番号(ハイフンなし3桁)
/\A\d{3}\z/
# 郵便番号(ハイフンなし5桁)
/\A\d{5}\z/
# 郵便番号(ハイフンなし7桁)
/\A\d{7}\z/
# 電話番号(ハイフンなし10桁)
/\A\d{10}\z/
# 携帯番号(ハイフンなし11桁)
/\A\d{11}\z/
# 携帯番号(ハイフンなし10桁or11桁)
/\A\d{10,11}\z/
# e-mail
/\A\S+@\S+\.\S+\z/
# URL
/\Ahttps?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/
# クレジットカード(VISA,Master,Diners,Discover,Amex対応)
/\A(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})\z/