LoginSignup
31
24

More than 5 years have passed since last update.

正規表現総まとめ!!

Last updated at Posted at 2018-03-12

正規表現とは、いろんな文字列を一つの形式で表現するためのものです。
「正規表現とは」は調べたらいくらでも出てくるので、そちらをご覧ください

文字や数字

特定の文字はa,b,c,d,e...など
特定の数字は1,2,3,4,5...など

何でもいいけど、とりあえず数字!「1」でも[2]でもいいけど、とりあえず数字を指定したい!っていうときは、「\d
数字は英語で「digits」なので、digitsの「d」ですね、きっと。

数字以外!「a」でも「b」でもいいけど、とりえず数字以外を指定したい!っていうときは「\D」です。

任意の英数字を表すときは、\wで、
任意の英数字以外の文字を表すときは\Wです。

ワイルドカード

.(ピリオド)は任意の単一の文字を表します(文字、数字、空白など全て)

でも、任意の単一の文字ではなく、普通にピリオドを使いたい!っていうときは「\ .」

特定の文字のマッチング

a,b,cのどれか一文字というのは、[abc]と表します。

例えば、
aii
iii
uii

という文字列を全て正規表現で表現しようとすれば、
[aiu]ii
となります。

特定の文字を除外する

先ほどは特定の文字とマッチングしましたが、逆に特定の文字を除外します。
つまり、「この文字は入れないで」っていう正規表現ですね。

除外する際は「^(ハット)」の記号を使います。

[^abc]とした場合、意味は、aでもbでもcでもない任意の一文字という意味になります。

※排除する意味でのハットは、で使います。^a とすると、この場合ハットは「行頭」を意味します。詳しくは後ほど。

例えば、
aii ※入れたい
iii ※入れたい
uii ※入れたくない
があるとしたら、

[^u]ii
と表せます。

連続した文字のうちの1文字が一致

連続した文字を表したい場合は、「-(ダッシュ)」を用います。
[0-9]0から9までの数字のうちの1つを意味します。
[^ad]aからdまでのうちの1文字以外を意味します。

文字の繰り返し

中括弧を使用して、文字の繰り返しを表現します。

w{3}は「w」がちょうど3回繰り返している表現にマッチ ⇒ www
w{,3}は「w」が3回までの繰り返しにマッチ ⇒ w, ww, www
w{2,3}は「w」が1回以上3回以下の繰り返しにマッチ ⇒ ww, www

直前のパターンの繰り返し

直前のパターンを0回以上繰り返し「*(アスタリスク)」を用います。

さらに、直前のパターンを1回以上繰り返し「+(プラス)」を用います。

たとえば、
b+ は1つ以上のb
[abc]+ は任意のaかbかcが1つ以上

直前の文字が0回又は1回

「?(クエスチョンマーク)」は、直前の文字が0回又は一回だけ登場することを意味します。

たとえば、
ab?d は、「abd」もしくは「abbd」にマッチします。

空白、タブ、改行、キャリッジリターン

正規表現で空白を表現するには、一般的に「\s」で、
空白以外を表現するのは「\S」

他にも、
「 (スペース)」「\t(タブ)」「\n(改行)」「\R(キャリッジリターン)」などがある。

※キャリッジリターンは、カーソルを文頭へ戻すこと示す記号らしいです。

開始と終了

「行頭(開始)」を表す際にも使われます。

一方で、「行末(終了)」$(ドル)を使います。

たとえば、
^abc は abcで始まる文を参照します
abc$ は abcで終わる文を参照します

ファイル名を取得

例えば、fileから始まって.jpgで終わるファイルがあるとする
「file_kamogawa.jpg」
「file_osaka.jpg」 みたいな。

この場合は、

^(file.+).jpg$

このように書きます。

この丸括弧内の表現は、後で処理するために一時的に記憶できるらしいです。

また、丸かっこで囲まれた部分はひとまとまりと認識されるようです、

条件(OR)

またはは、「|」で表されます。
cats or dogs とやりたい場合、、、

cats|dogs
でおっけーです!

その他の特殊文字

単語の境界を「\b」で表します。
例えば、\bday とすると、単語の境界部分から「day」で始まる文字列を参照してくれます。

これに関しては、以下のサイトがおすすめ
単語境界/非単語境界(¥b, ¥B)

おわり

とりあえず、こんな感じです。

31
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
24