正規表現はじめの一歩

正規表現はじめの一歩

  • 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

サイト内検索

最近の投稿

アイキャッチ
正規表現はじめの一歩

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

07 Oct 2018

アイキャッチ
ワードプレス記事一括削除する方法

ワードプレスで記事を一括削除する方法が意外と簡単なことに気がつきました。記事を大量に削除する場合はあまりなかったのですが、調べてみたら簡単なことでした。 大量のデータをインポートする時に失敗し...

30 Sep 2018

アイキャッチ
メールはGmailに限る

大分間が空きました。。。さて今回はGmailをご紹介します。最近ではチャット系アプリが主流ですが、それでもやはりメールはなんだかんだで使います。いつも悩まされるのはスパムメールですが、Gmail...

25 Sep 2018

アイキャッチ
大山の大献灯・和傘灯りに行った感想

大山の大献灯・和傘灯りに初めて行って参りました。13日の夜に行ってきましたがこんなイベントをやっていることを知らなかったのでご紹介します。和傘のライトアップで日本の夏の雰囲気が良いですね。 大...

23 Aug 2018

アイキャッチ
出雲神話祭り・花火大会

お盆休み中に出雲の花火大会に行って参りました、今年は8月12日(日)でした、開催日は毎年違いますので確認しておきましょう。だいたいこのあたりだった気がします。8,000発の花火で例年13万人が来...

21 Aug 2018

著者

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

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

タグクラウド

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