正規表現の基本(regular expression)

正規表現とは

簡単にいえば検索方法の一つです。*(アスタリスク)をワイルドカードとして利用することは多くの人が知っているかもしれません。
例えば、「ブック*」と検索すれば、ブックで始まる文字を検索することができます。

しかし、「^[0-9]」とした場合に、0から9、つまり数字で始まる文字を検索できることを知る人になるとグッと人数は減るでしょう。

膨大なデータを処理するのがシステムの仕事です。検索はその中でも最重要課題です。もしご存じない方がいれば、この機会に内容を押さえておくことをお勧めします。

どこで使用するのか

残念ながらWindowsのデフォルトのメモ帳には、正規表現による検索機能はついていません。
しかし、多くのテキストエディターと呼ばれるフリーソフトにはこの機能が搭載されています。

もしどのエディターがいいかを悩んでいる方がいましたら、私は迷わずサクラエディタをお勧めします。検索ウィンドウに、正規表現というチェックボックスがありますので、チェックをいれて使用します。

フリーでありながら、マクロ(キーマクロの記録)が利用、言語によるハイライト表示、矩形(くけい)選択と言った、一度しれば作業効率が数倍に跳ね上がる機能が満載だからです。しらない方に勧めると、名前があやしい!といわれますが、安心して使って下さい。

このように一般的なテキストエディター以外にも、既に多くのプログラム言語やデータベース、Linuxで関数が実装されています。
しかし、微妙に使い方がことなる場合がありますので、少し注意が必要です。
ただしその点は、既に多くの資料がWeb上に存在しているのであまり問題とはなりません。

どういったことができるのかを知っていれば、その都度調べれば良いのです。

基本

以下、サクラエディタで使用できる正規表現の一部です。

. 改行文字以外の任意の1文字
^ 行の先頭
$ 行の末尾
[ ] かっこ内の任意の1文字に一致。ハイフン(-)で範囲指定もできる
[^ ] かっこ内の任意の1文字に不一致。ハイフン(-)で範囲指定もできる
+ 直前の文字の1個以上の繰り返しに一致
? 直前の文字の0または1文字に一致
{n} 直前の文字のn個の繰り返しに一致
{n,} 直前の文字のn個以上の繰り返しに一致
{,m} 直前の文字のm個以下の繰り返しに一致
{n,m} 直前の文字のn個以上、m個以下の繰り返しに一致
パターン1\|パターン2 パターン1またはパターン2のいずれかに一致
\ エスケープもじ

基本の利用例

^[0-9] 数字ではじまる行
[a-Z]$ A-Zで終わる行
[a-z]{3} 3文字以上のアルファベット

実際の利用

実際には必用な分だけの利用方法があると言っても過言ではないでしょうし、1つの事柄に対する検索パターンも多々あるでしょう。
例えば090-xxxx-xxxxを検索したい場合、は
^090-[0-9]{4}-[0-9]{4}
とすれば、090で始まる番号は検索できますが、080は検索対象外になります。
使いかた次第では、URLの検索、郵便番号の検索、拡張子の検索に利用できます。

最後に、正規表現は英語ではregular expressionです。よく関数名にも利用されているのでこの単語をみたら思いだすことでしょう。

必用が生じれば是非正規表現のを思い出してみて下さい。

タイトルとURLをコピーしました