正規表現はじめの一歩

正規表現はじめの一歩

  • 2018-10-07  最終更新日:2018-10-07

今回は正規表現です。たまにしか使わないのですぐに忘れてしまいますのでまとめておきます。 文字列の検索時にある条件にマッチしたものを表示させるものです。

エディターにも検索条件に正規表現という検索方法もあるかと思います。単純な条件ではなく複雑な条件で表示させることが出来てとても便利です。データ検索と置換は重要ですね。

簡単にまとめておきました。覚える項目は4項目だけです。


1.基本

正規表現

まずは基本のパターンマッチングです。いくつかの文字列を検索するためのメタキャラクタ(メタ文字)を掲載してあります。

メタ文字 説明
. 改行を除く任意の1文字に一致
\w アルファベット、数字、アンダスコア( _ )のどれかの1文字、'[A-Za-z0-9_]' と同じ意味。
\W アルファベット、数字、アンダスコア以外の1文字、'[^A-Za-z0-9_]' と同じ意味。
\s スペース、タブ、フォームフィードなどの任意の空白文字と一致、[ \f\n\r\t\v] と同じ意味。
\S 空白文字以外の任意の文字と一致、[^ \f\n\r\t\v] と同じ意味。
\d 半角数字1文字、[0-9] と同じ意味。
\D 半角数字以外、[^0-9] と同じ意味。
\n 改行文字と一致。
\r キャリッジリターン文字と一致。
\t タブ文字と一致。
[abc] 検索文字を指定します。角かっこ[]で囲まれた文字の中のいずれかに一致。たとえば、'[abc]' は "Alphabet" の 'ab' と一致。
[^abc] 除外する検索文字を指定します。角かっこ[]で囲まれた文字以外の文字に一致。たとえば、'[^abc]' は "Alphabet" の 'Alphet' と一致。
[a-z] 指定された範囲にある文字と一致。たとえば、"[a-z]" は小文字の英字 "a" から "z" の範囲にある任意の文字と一致。
[^a-z] 否定の文字の範囲。たとえば、"[^a-z]" は小文字の英字 "a" から "z" の範囲外にある任意の文字と一致。
(x|y) x または y と一致。たとえば、'eat|drink' は"eat"または"drink"と一致します。"(sam|ap)ple" は "sample" または "apple" に一致します。

2.修飾子

量指定子とも言いますが、文字数がどれくらいなのか不明な場合や回数指定する場合などに利用します。 この方法を利用して要素を何回一致させるか指定することができます。

メタ文字 説明
* 直前の文字0回以上の繰り返しに一致。たとえば、'fo*'は"f"とも"foo"とも一致。* は {0,} と同じ意味。
+ 直前の文字1回以上の繰り返しに一致。たとえば、"fo+"は"fo"や"fooo" とは一致しますが、"f" とは一致しません。+ は {1,} と同じ意味。
? 直前の文字0回または1回一致。たとえば、'https?' は"http"または"https"と一致。? は{0,1}と同じ意味。
{n} nには0以上の整数を指定します。正確にn回一致します。たとえば、'o{2}'は"Tomの'o'とは一致しませんが、"food"の2つの o とは一致します。
{n,} nには0以上の整数を指定します。少なくともn回一致します。たとえば、'o{2}'は"Tom"の'o'とは一致しませんが、"foooood"のすべての o とは一致します。'o{1,}' は 'o+' と同じ意味になります。'o{0,}' は 'o*' と同じ意味になります。
{n,m} m および n には 0 以上の整数を指定します。n は m 以下です。n ~ m 回一致します。たとえば、'o{1,3}' は "fooooood" の最初の 3 つの o と一致します。'o{0,1}' は 'o?' と同じ意味になります。カンマと数の間には、スペースを入れないでください。

3.アンカー

文字列の先頭や末尾に特定の文字がある文字列も表現できます。行の先頭や末尾などの指定も出来ます。

メタ文字 説明
^ 入力文字列の先頭と一致。
$ 入力文字列の末尾と一致。
\b 単語の境界と一致。単語の境界とは、単語とスペースとの間の位置のことです。たとえば、'er\b'は"bloger" の'er'と一致しますが、"term"の'er'とは一致しません。
\B 単語境界以外と一致します。たとえば、'er\B'は "term"の'er'と一致しますが、"bloger"の'er'とは一致しません。

4.変数

条件でカッコ()を指定して再利用する方法です。カッコ()で囲われた部分を変数に代入することができます。この変数は$1,$2,$3…と使うこと可能です。置換する際に便利です。

https?://www.example.com/(\d{4})/(\d{2})/post-(\d{1,4}).html
⇒https://www.example.com/$1/$2/$3/

英数字記号

半角英数文字記号のhtmlファイルを検索する場合は以下のような感じになるかと思います。

([!-~]+).html

33番のコードから126番のコードまでという意味になります。

以下のコード表が参考になりました。

ブラウザで正規表現

以下はブラウザ上で正規表現が出来るものです。確認する際に利用が出来て便利ですね。

参考になれば幸いです。


∞Tadashi Suyama∞

正規表現 regular expression
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

サイト内検索

最近の投稿

アイキャッチ
そろそろvuejs始める

最近はjQueryよりvueで書いた方が楽ではないかと思い学習中です。 そもそもVuejsはドキュメントが日本語対応なので試しやすいし情報も豊富なので学習しやすいです。 3大フレームワークと呼...

02 May 2021

アイキャッチ
追い風CSS(tailwindcss)が結局楽かも

最初にtailwindcssのv1が出た頃はまだbootstrapで良いかな。 htmlに入れるクラスタグが多過ぎと思っていました。あまり良い印象はなかったです。 時は過ぎいろいろと触っていると...

29 Apr 2021

アイキャッチ
エラー処理について

COJPドメンを取得する際に「登記年月日」という項目があります。 その項目通り登記した年月日を入れる訳ですが、なぜかエラーが出ました。 半角英数字にして下さいというよくあるエラーです。当然半角英...

24 Jan 2021

アイキャッチ
javascriptのundefinedの判定

jqueryで高さの数値をとって足し算をしていたらエラーも出ずに動かないということになったので調べてみました。 ワードプレスで管理画面のアドミンバーが一度ログインするとフロント画面でも表示される...

17 Jan 2021

アイキャッチ
Webpack5にアップデートしてエラーの対処方法2つ

webpack4(4.41.5)から webpack5(5.12.1)にあげました。 特に難しい設定は行っておらず主にscssと共通モジュールの設定だけで使っているのですがそれでもエラーが出たの...

09 Jan 2021

著者

ウェブエンジニアの須山のブログです。

WEBに関することや個人的に関心のあることについて書きます。主に技術系ブログです。

タグクラウド

正規表現 regular expression
フッターイメージ