cinnamon416の日記

cinnamon416の日記

研究、サークル、学生団体など日々の活動の記録

正規表現

正規表現とは、「いくつかの文字列を一つの形式で表現するための表現方法」のこと。
この表現方法を利用すれば、たくさんの文章の中から容易に見つけたい文字列を検索することができる。

普通の文字列

単純にその文字列にマッチする。

正規表現 マッチする文字列
やあ やあ、こんにちは

この中のどれか => |

いくつかのパターンを候補にできる。

正規表現 マッチする文字列
こんにちは|今日は| こんにちは、ケン, 今日はもうおしまい

アンカー => ^ , $

パターンの位置を指定するメタ文字。
アンカーを使うと対象の文字列のどこにパターンが現れなければいけないかを指定できる。
行の先頭 => ^
行末 => $

正規表現 マッチする文字列
^やあ やあ、ケン
じゃん$ これ、いいじゃん
^ハイ$ ハイ

どれか1文字 => [ ]

いくつかの文字を[]で囲むことで、「これらの文字の中でどれか1文字」という表現ができる。

正規表現 マッチする文字列
こんにち[はわ] こんにちは, こんにちわ
ども[〜ー…!、] どもーっす, ども〜。, ものども!

なんでも1文字 => .

「.」はなんでも1文字にマッチするメタ文字。
スペースやタブなどの目に見えない文字にもマッチする。

正規表現 マッチする文字列
うわっ、...! うわっ、出たっ!, うわっ、それか!

繰り返し => + , *

繰り返しを意味するメタ文字を置くことで、直前の文字が連続することを表現できる。
「+」は一回以上の繰り返しを意味する。
「*」は0回以上の繰り返しを意味する。つまり、あってもなくても構わないし連続していても構わないことを意味する。
「{m,n}」を使えば繰り返し回数を限定できる。「m回以上、n回以下」

正規表現 マッチする文字列
は+ ははは,
^ええーっ!* ええーっ!!!, ええーっもう帰ったの
ぷ{3,} ぷぷぷ, うぷぷぷ

あるかないか => ?

直前の1文字があってもなくてもいいことを表現できる。

正規表現 マッチする文字列
盛った[!!]?$ だいぶ盛った!, 完璧に盛った

パターンをまとめる => ()

「()」で1文字以上のパターンをまとめることができる。

正規表現 マッチする文字列
(まじ|マジ)で ま、マジで?, まじでそう思います
(ほわん)+ ほわんほわんしてるね, 心がほわんとする

メタ文字を普通の文字として検索したい => \

メタ文字の直前に「\」を付加すれば普通の文字として検索できる

正規表現 マッチする文字列
a\* a*

以上、正規表現の一部を記載したが、調べて見たらもっとたくさんの表現がありそうなので、気が向いたら追記していく。