どーも!marusukeです!
この記事では
- 拡張正規表現でできること
- 拡張正規表現の使用例
- 拡張正規表現で使えるメタ文字
をわかりやすく解説します!
※拡張正規表現は主に grep -E や egrep で使用できます。
拡張正規表現でできること
grep -E "パターン" ファイル名
拡張正規表現(Extended Regular Expression)は、
文字列の検索パターンを柔軟に表現するための仕組みです。
Linuxでは grep コマンドでよく使用され、
ログ解析やテキスト処理で非常に便利です。
例えば次のようなことができます。
- 複数の文字列をOR検索する
- 繰り返し回数を指定する
- 特定の文字列パターンをまとめて検索する
基本的には以下のコマンドで使用します。
grep -E "正規表現" ファイル
また、egrep コマンドも同じ機能です。
egrep "正規表現" ファイル
※最近は grep -E を使うのが一般的です。
用語解説:正規表現
文字列の検索パターンを表現するための記法。
特定の文字列だけでなく、条件に一致する文字列を柔軟に検索できる仕組みです。
拡張正規表現の使用例
grep -E "error|warning" log.txt
error: file not found
warning: disk space low
この例では error または warning を検索しています。
| は OR条件 を表すメタ文字です。
つまり
error OR warning
に一致する行が表示されます。
ログファイルの解析などでよく使われる検索方法です。
拡張正規表現のオプション(メタ文字)
拡張正規表現では、以下のメタ文字を使用できます。
| メタ文字 | 意味 | 例 |
|---|---|---|
| ` | ` | OR条件 |
() | グループ化 | `(cat |
? | 0回または1回 | colou?r |
+ | 1回以上繰り返す | go+gle |
* | 0回以上繰り返す | ab* |
{n} | n回繰り返す | a{3} |
{n,m} | n〜m回繰り返す | a{2,5} |
OR検索
grep -E "cat|dog" animals.txt
cat または dog を検索します。
繰り返し指定
grep -E "go+gle" test.txt
以下のような文字列にマッチします。
gogle
google
gooogle
o が1回以上繰り返されているパターンです。
グループ化
grep -E "(jpg|png)$" files.txt
拡張子が jpg または png の行を検索できます。
回数指定
grep -E "a{3}" test.txt
a が 3回連続している文字列に一致します。
例
aaa
baaa
拡張正規表現と基本正規表現の違い
grep の通常モードは 基本正規表現(BRE) です。
しかし拡張正規表現では、以下のように
バックスラッシュ無しでメタ文字を使えるのが特徴です。
| 基本正規表現 | 拡張正規表現 |
|---|---|
| ( ) | () |
| | | | |
| + | + |
そのため grep -E の方が書きやすいというメリットがあります。
まとめ
拡張正規表現は、Linuxでのテキスト検索を強力にする仕組みです。
よく使うポイントは次の3つです。
|→ OR検索()→ グループ化+ * ? {}→ 繰り返し指定
ログ解析・ファイル検索・テキスト処理など
Linuxエンジニアには必須の知識なので、ぜひ覚えておきましょう!
以上です!
ここまで読んでいただきありがとうございました!





コメント