この記事で分かること
・正規表現の曖昧さを解消
・メタ文字の使い方[^ $ . | + *]
はじめに
IT業界に飛び込んでよく「正規表現」って聞くけど実際何?今更聞けない部分を改めて簡単にまとめてみました。
正規表現ってそもそも何か。何ができる?
・文字列をパターン化したもの
・メタ文字を用いて調べたいもの、指定した条件にマッチした文字列を検索、置換する
これだけ文字で見ると触り慣れていないひとからしたら分かりにくく、とっつきにくいかもしれません。
たくさんのテキストから「特定の文字列を検索するのに使用するもの」くらいで最初は覚えておきたいです。
実際にどうやって使われることがあるか?
Visual Studio Code、サクラエディタ、プラグラミング(JavaScript、PHP)等、開発やWEB系で使われたりします。
例えばテキストエディタでは大量の文字から特定の文字列を検索・置換したりするのに正規表現を使います。
基本的な正規表現
①行頭(^[ハット])/行末($[ダラ])
例:
いい天気だ今日は
今日はいい天気だ
上記文章に対して「^」を使用して検索します。
[^いい天気だ]
※黄色に塗りつぶされたところがマッチした箇所になります。以降も同様。
次に行末を「$」を使用して検索します。
(※画像イメージには「サクラエディタ」を使用しています。)
[いい天気だ$]
1行目の「いい天気だ」ではなく、末尾に「$」をつけることで3行目の行末の文章がマッチしています。
②任意の一文字(.)
例:
可愛い猫だ
可愛い犬だ
可愛い鳥ね
上記文章に対して「.」を使用して検索します。
[可愛い.だ]
3行目以外がマッチしており、「.」部分についてはタイトルの通り任意の文字が入っていればOKとなります。
③どちらか[or]を表す(|[パイプ])
例:
猫
狐
犬
鳥
上記文章に対して「|」を使用して検索します。
[猫|犬]
1行目の「猫」、3行目の「犬」がマッチしており、「犬、猫」両方の文字列が検索されます。
④直前の文字が1回以上繰り返し(+)
例:
牛タン ネギ牛タン 豚タン ネギ ネギ牛スジ
上記文章に対して「+」を使用して検索します。
[ネギ牛+]
見比べやすいように続けて次の「*」に進みます。
⑤直前の文字が0回以上繰り返し(*)
例:
牛タン ネギ牛タン 豚タン ネギ ネギ牛スジ
上記は④と同じ文章となります。
上記文章に対して「*」を使用して検索します。
[ネギ牛*]
⑤で使用している「*」の正規表現では「ネギ牛」で検索していて、「ネギ」単体の文字列もマッチしています。
ここが+と*の違いとなります。*は「0回以上の繰り返し」で文字列の検索が行わるので「ネギ牛」だけでなく「ネギ」もマッチしています。「+、*」は意味が似ていて混同しやすいので注意しましょう。
まとめ
「正規表現」は特定の文字列を検索したい、置換したい時に使える便利なものです。
仕事や趣味でプログラミングをする方に力になってくれる味方なので、今後も意識して使用したいですね。
まだまだ、他にも紹介したい「正規表現」が存在するので今後もその都度追加していく予定です。
コメント