PHP, SEノウハウ

PHP preg_match() 正規表現の世界

 

半角英字

 

0以上であり、数字で構成されている

 

2桁以下の数字

 

 

基本的な正規表現

 

  • ^
    行頭
  • .
    任意の一文字
    例) 私は…です。
    ・私はトマトです。等にマッチ
    例) 私は.で..です。
    ・私は敵で味方です等にマッチ
  • []
    任意の一文字
    例)
    [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

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)