Hirotum Note

正規表現の使用例

  

正規表現の使用例

前回まとめた一覧から、よく使うだろうと思うものをピックアップしてみました。
業務でまた新しい発見があれば更新しようと思います。

  • メタ文字
. * + ? \ | ^ $ [] () {}

郵便番号のチェック

  • ルール  [3桁の数字]-[4桁の数字]

\d{3}-\d{4}

メールアドレスのチェック

  • ルール  [1文字以上の英数字|-|.]@[1文字以上の英数字|-|.].[1文字以上のアルファベット]

^[\w\-\.]+@[\w\-\.]+\.[a-zA-Z]+$

^[\w\-\.]+ ==> 先頭が英数字か「_」,「-」,「.」を1文字以上の繰り返し

[a-zA-Z]+$ ==> 末尾が英字を1文字以上の繰り返し

アルファベットか数字で4~8文字の時だけマッチ

  • ルール  アルファベットか数字で4~8文字

^[a-zA-Z0-9]{4,8}$

^~~~$ ^ 先頭と $ 末尾 で{4,8}のくり返しで制限するのが必要になる。

HTMLの要素にマッチ

  • ルール  < 1文字以上の英数字のタグ名 > [どんな文字でも(なくても可)]</ 同じタグ名 >

<(\w+)>.*</\1>

.* ==> なんでもいい1文字を0回以上のくり返し

(\w+) \1 ==> (\w+) 最短マッチ \1 で絞り込みしている。

URLのドメイン名にマッチ

  • ルール  < 1文字以上の英数字のタグ名 > [どんな文字でも(なくても可)]</ 同じタグ名 >
  • http:// または https:// ではじまる
  • 後ろの /ディレクトリ名やファイル名、パラメーターはある場合もない場合もある
  • ホスト、ドメイン名で使用できる文字は アルファベット、数字、「_」,「-」,「.」

(?<=https?://)[\w\-\.]+(?=/.*)

(?<=https?://) ==> 【後読み】前に 「http://」 または 「https://」 がついている場合に

(?=/.*) ==> 【先読み】後ろに 「/なんでも可」 がついている場合に

[\w\-\.]+ ==> 英数字,「_」,「-」,「.」 が1文字以上あるときにマッチする

例) スペースを含まない文字列

// 半角スペースを含まない1文字以上の連続

[^ ]+

// 全角スペースを含まない1文字以上の連続

[^ ]+

// 全角か半角かのスペースを含まない1文字以上の連続

[^  ]+

例)特定の文字のみを含む文字列

// 特定の文字のみを含む文字列

[ぁ-んァ-ヴ0-9a-zA-Z0-9\-]+

否定的先読みの応用

//〜を含まない

//「abc」という文字列を含まない行にマッチする。

^(?!.*abc).*$

//〜または〜を含まない

//「abc」または「efg」という文字列を含まない行にマッチする。

^(?!.*(abc|efg)).*$

//〜で始まらない

//「abc」という文字列から始まらない行にマッチする。

^(?!abc).*$

//〜で終わらない

//「abc」という文字列で終わらない行にマッチする。

^(?!.*abc$).*$

否定的先読みだけはまだ勉強しなければならないと思います、間違いがあれば更新していきます。
参考にする場合はこちらのページを見直して活用していきます。

ご覧いただきアリガ㌧♪