Lから始まるLinux

2章53話
AND演算子とOR演算子
2章54話 正規表現
もくじ
2章55話
grepコマンド
正規表現
若木 みどり
お兄ちゃん! 簡単なコマンドなら 結構使いこなせるようになったよ もっとレベルの高いコマンドを 使えるようになりたい!
若木 しげる
それなら「正規表現(regular expression)」を学ぼう! これは文字列を柔軟に表現する方法なんだ
若木 みどり
高度なコマンドで 正規表現を使うのね?
使い方
若木 しげる
正規表現は以下の記号が 特殊な意味を持つよ 代表的なものを紹介するね
正規表現 意味
. 任意の1文字
[...] ... の中の1文字
[^...] ... の中以外の1文字
? 直前の文字が0個または1個
* 直前の文字の任意の個数繰り返し
+ 直前の文字の1個以上の繰り返し
{m,n} 直前の文字 m 個以上 n 個以下の繰り返し
{m,} 直前の文字 m 個以上の繰り返し
{,n} 直前の文字 n 個以下の繰り返し
^ 行頭
$ 行末
実践
若木 みどり
具体例を見てみたいなぁ
若木 しげる
それでは以下の 正規表現はどうかな
colou?r
若木 みどり
えっと…?「直前の文字が0個か1個」だよね
若木 みどり
ということは「color」「colour」どちらかを指すんだ「color」はアメリカ英語「colour」はイギリス英語だね!
若木 しげる
正解!次はどうだろう?
yaho+
若木 みどり
+「直前の文字の1個以上の繰り返し」だから「yaho」「yahoo」「yahooo」のようにo の部分が1個以上あればどんな長さでもいいんだよね?
若木 しげる
いいねいいね!では最後にこれはどうかな正規表現でよく使われる書き方だよ
.*
若木 みどり
.「任意の1文字」*「直前の文字の任意の個数繰り返し」ね…
若木 みどり(驚き)
あっ!これって「どんな文字列でも OK」という表現なんじゃないかな?!
若木 しげる(笑顔)
よくできました!
まとめ
若木 みどり
今回は正規表現を学んだよ正規表現は文字列を柔軟に表現する方法なんだね
若木 しげる
これから紹介するコマンドgrep, sed, awk正規表現を使うんだ基礎をしっかり押さえてから次へ進もう!