Shammer's Philosophy

My private adversaria

Emacsで正規表現を使って文字列検索

文字列検索や置換に正規表現は必要不可欠。とりあえず、正規表現の要素を調べてみました。なお、表中のXXXは任意の文字列を意味します。

意味 表記方法
改行以外の文字一文字 .(ドット)
0回以上の繰り返し
1回以上の繰り返し +
0回、あるいは1回を意味する ?
指定した文字のどれかに一致 [XXX]
指定した文字のいずれにも一致しない [^XXX]
単語 \w
単語じゃない(空白とか) \W

他にもあるようだが、使ったことがなく理解できなかったので保留。

正規表現検索は、Ctrl-U→Ctrl-Sの順番で、Regexp I-search:がミニバッファに出る。ここに、正規表現を入力する。

上の表に基づいていくつかの例を試してみた。

表記 結果
[0-9] 数字に一致
[^0-9] 数字じゃない文字列に一致
[a-zA-Z] アルファベットの大文字小文字に一致
.*9 9より前の文字
.?0 任意の一文字と0

他にもいろいろあるが、基本的にはこんな感じか。あとは日々使って体で覚えていくしかないな。