半角英字
preg_match('/^[a-z]*$/i', $input);
0以上であり、数字で構成されている
preg_match('/^[0-9]*$/', $input) > 0
2桁以下の数字
preg_match('/^[0-9]{,2}$/', $input)
もくじ
基本的な正規表現
- ^
行頭 - .
任意の一文字
例) 私は…です。
・私はトマトです。等にマッチ
例) 私は.で..です。
・私は敵で味方です等にマッチ - []
任意の一文字
例)
[aiueo]
→ a または i, u, e, oにマッチ - [A-Z]
英大文字A〜Zの任意の一文字にマッチ - [a-z]
英小文字a〜zの任意の一文字にマッチ - [0-9]
数字の0〜9の1つにマッチ - [a-zA-Z0-9]
a〜z, A〜Z, 0〜9の1つにマッチ - [^aiueo]
a, i, u, e, o以外の文字にマッチ - [あ-ん]
ひらがなの1文字にマッチ - *
直前の一文字を0回数以上繰り返す - +
直前の一文字を1回数以上繰り返す
例) ye+ah
yeah, yeeah, yeeeeeeeeah等にマッチ - ?
直前の一文字を0回または1回繰り返す
例) https?
http, httpsにマッチ - {3}
直前の表現を3回繰り返す - {3,}
直前の表現を3回以上繰り返す
例 go{2,}d
・good, goooooodなどにマッチ - {,3}
直前の表現を3回以下繰り返す - {3,5}
直前の表現を3回から5回繰り返す - a|b
aまたはbにマッチする - ()
グループ化
例) それでは「(ごきげんよう|おかわいいこと|眠いンゴ)ですわ」
・それでは「ごきげんようですわ」
・それでは「おかわいいことですわ」
・それでは「眠いンゴですわ」
にマッチ - キャプチャ
例 ) この(.+)は俺の¥1だ
・この獲物は俺の獲物だ
などにマッチ - ¥
エスケープ文字 - ¥b
例)apple¥b
・appleにマッチする。
・applepieにはヒットしない
例) ¥bcool¥b
🙆♀️ I am cool boy
🙅♂️ I am coolish boy - ¥d
数字1文字
[0-9]と意味は同じ
例 ¥d¥d¥d¥d年
1989年などにマッチ - ¥d+年
・1999年
・200000年
などにマッチ - ¥D
数字以外の1文字
[^0-9]と意味は同じ
例) 私は¥D¥D¥d¥d年生まれです。
・私は令和12年生まれです。等にマッチ - ¥w
英数1文字
[a-zA-Z0-9]と意味は同じ
例) I am a ¥w¥w¥w
・I am a pen
・I am a cat - ¥W
英数1文字以外
[^a-zA-Z0-9]と意味は同じ - ¥s
空白文字
例) 金広¥s優
・金広 優
・金広<タブ文字>優
にヒット。
・金広優
にヒットしない。 - ¥S
空白文字以外 - ¥n
改行
応用的な正規表現
- 0|[1-9]¥d? |100
0から100までの整数
指定した範囲に含まれる整数を表す。 - ¥d*[02468]
偶数にマッチ - [aA][pP][pP][lL][eE]
・apple
・Apple
・aPpLe
・aPPlE
などにマッチ - 焼[鳥肉豚]定食
・焼鳥定食
・焼肉定食
・焼豚定食
にマッチ - .*?
最小、最長マッチ
例) 「.*?」
・「俺は一体…誰なんだよ」
・「俺は一体」
・「俺は本体」
などにマッチ
「.*」の場合は「俺は一体」誰なんだよぉおお!
とかになる。?を入れることで止めれる。 - ¥d{3}-?¥d{4}
郵便番号を表す正規表現
・011-2333
・333-2222
・0214444
などにマッチ - 0[7-9] 0-?¥d{4}-?¥d{4}
携帯番号を表す正規表現
・090-2567-3098
・07025672222
フラグ
- i
大文字小文字の区別なく検索する - g
グローバレウチェック。文字列の最後まで検索を繰り返す - m
先頭と末尾だけでなく、行頭と行末でも検索する
@see