基本の正規表現

ITインフラ

▪️目的と背景

日頃、エンジニアは実務でメモを使うことが多いです。(自分はサクラエディタによくお世話になっています)
例えば、該当する行の文字列を一括で他の文字列に置換したいとき、ある規則に該当する文字のみ表示するとき、すべての先頭の行の空白を無くしたい時など・・・

このように「特定の規則に合致する文字や数字などを一瞬で見つけたいとき」に便利です。通常だとそれに該当するものをひとつひとつ見つけて置換するところを正規表現を使用すれば1度の置換で済ませられます。
他にもインフラ実務ではコマンド操作で該当する箇所を一括で検索、置換することで作業効率を高めることもできます。

自分もこの正規表現あまり慣れていないので勉強がてらここに最低限のレベルのものをまとめていきます。

▪️「 . 」 ・・・ 任意の1文字

「 . (ピリオド)」は「任意の1文字」を表します。この「1文字」は普通の文字も数字も可能です。

(例)
2.4 ・・・ 234, 2あ4

2…6 ・・・ 23456, 2あい16

▪️「 [ ] 」 ・・・ 文字集合

「 [ ] 」は一連の「文字集合」を表します。「 [ 」と「 ] 」で囲まれた文字の「いずれか1文字」を表します。

(例)
[123] ・・・ 1, 2, 3のいずれか1文字
B[AUI]T ・・・ BAT, BUT, BIT

また、「 – 」を使って範囲を指定することもできます。

(例)
[A-Z] ・・・ A〜Zのいずれか1文字
AB[1-10]C ・・・ AB1C, AB2C, ……AB10C

注意点として「 ^ (ハット)」が使われている時です。「 ^ (ハット)」は本来「先頭」を表す正規表現ですが、文字集合で使われると「〜以外」という意味になります。

(例)
[^abc] ・・・ aでもbでもcでもない1文字 = d, e, A, B …など

▪️「 ^ 」 ・・・ 「行頭」を表す

「 ^ (ハット)」は通常、「行頭」を表します。

(例)
^1 ・・・・行頭にある1
^A ・・・・行頭にあるA

▪️「 $ 」 ・・・ 「行末」を表す

「 $ 」は「行末」を表します。

(例)
$5 ・・・行末にある5
$A ・・・行末にあるA

上記の「^」と「$」を組み合わせて「 ^$ 」とすることで、「空白行」を表すこともできます。「^$」は直訳すると「先頭に何もなくて行末にも何もない」= 「空白行」というわけです。

(例)
^$ ・・・空白行

▪️ 「 * 」「 {n} 」 ・・・ 繰り返しを表す

「 * 」は「直前の文字の0回以上の繰り返し」を表します。「0回以上」ということに注意してください。

(例)
ABC*D ・・・ ABD, ABCD, ABCCD, …..

「 {n} 」は「直前の文字のn回の繰り返し」を表します。

(例)
[0-9]{3}-[0-9]{4} ・・・ 100-2000, 200-8888 …..など

▪️「 \ 」・・・ 正規表現としての意味を打ち消す

「 \ 」は直後の文字をを正規表現としてではなく、直後の文字をそのままの文字として表したい時に使われます。

[例]
\* ・・・ 「 * 」はただの文字「 * 」として表される(「繰り返し」の意味は持たない)
A\- ・・・ A-

▪️まとめ

正規表現は覚えればなんてことなさそうですが、使いこなすまでに時間がかかりそうですね。しかし、優秀な先輩エンジニアの人は使いこなしてるので実務の効率化のために実務でも意識して使っていきます。

コメント

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