正規表現はじめの一歩

正規表現はじめの一歩

  • 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

サイト内検索

最近の投稿

アイキャッチ
姫路セントラルパークに行ってきた感想

さて久しぶりになりましたが連休中に姫路市に行って参りました。太陽公園と姫路セントラルパークを2日かけて回りましたが姫路セントラルパークに関しては1日では足りないぐらいかもしれないです。ここは遊園...

12 May 2019

アイキャッチ
これは楽!iterm2パスワードマネージャー機能

さて今回はiterm2のパスワード管理についてです。そもそもこんな機能がついていること自体知らなかったのでこれ使って楽だなと思ったのでご紹介します。 iterm2の現在時点での最新バージョンは...

30 Mar 2019

アイキャッチ
JavaScriptライブラリデータベースのご紹介

さて今回はJSライブラリーのデータベースをご紹介したいと思います。知っている方が多いかと思いますがライブラリやプラグイン、フレームワークなど探す際には役立つサイトではないでしょうか。 どのJS...

28 Mar 2019

アイキャッチ
Web制作者が8年Chrome使ってきた中でおすすめの拡張機能

最近はEdgeもGoogle Chromeと同じChromiumベースでのブラウザとなりほとんどクローム(Chrome)状態ではあります。FirefoxとSafariぐらいでしょうか。Firef...

17 Mar 2019

アイキャッチ
Bootstrap4でフォーム入力の際にカレンダーから日付入力する方法

最近はメインでのコーディングはBootstrap4に移行しておりますがいろいろと3の時に使えたものが使えなかったりとしております。 DatetimePickerなどもそうですね。私個人的には4に...

18 Feb 2019

著者

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

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

タグクラウド

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