お兄ちゃん!
簡単なコマンドなら
結構使いこなせるようになったよ
もっとレベルの高いコマンドを
使えるようになりたい!
それなら「正規表現(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+
+
はo
の部分が1個以上あればどんな長さでもいいんだよね?いいねいいね!では最後にこれはどうかな正規表現でよく使われる書き方だよ
.*
.
は*
はあっ!これって「どんな文字列でも OK」 という表現なんじゃないかな?!
よくできました!
今回は正規表現を学んだよ正規表現は文字列を柔軟に表現する方法なんだね
これから紹介するコマンド
grep
, sed
, awk
は正規表現を使うんだ基礎をしっかり押さえてから次へ進もう!