次: Regexps, 前: Word Search, 上: Search
正規表現(regular expression、regexpと略す)とは、 一致する可能性がある一連の(無限個でもよい)文字列を表現するパターンです。 GNU Emacsでは、インクリメンタルサーチでも一括型探索でも、 正規表現を用いてつぎの一致箇所を探索できます。
正規表現によるインクリメンタルサーチを実行するには、
C-M-s(isearch-forward-regexp
)と打ちます。
このコマンドは、C-sと同様に、探索文字列を逐次読み取ります。
ただし、探索文字列をバッファのテキストに対して正確に照合するため
のものとみなすのではなく、正規表現として扱います。
探索文字列にテキストを追加するごとに、
正規表現は長くなり、新たな正規表現を探索します。
(値は関係ない)前置引数を指定してC-sを起動しても、
前向きに正規表現の探索を始められます。
後向きに正規表現を探索するには、
C-M-r(isearch-backward-regexp
)を使うか、
前置引数を指定してC-rを使います。
通常のインクリメンタルサーチにおいて特別な機能を持つコントロール文字は、 正規表現のインクリメンタルサーチでも同じ機能を持ちます。 探索の開始直後にC-sやC-rを打つと、 最後のインクリメンタルサーチに用いた正規表現を再度使います。 つまり、正規表現を用いる探索とそうでない探索とには、 それぞれ独立のデフォルトがあるのです。 M-pとM-nで参照できる探索リングも それぞれ別々です。
正規表現のインクリメンタルサーチで<SPC>を打つと、 改行を含めた任意個の白文字に一致します。 ちょうど1個の空白に一致させたいのであれば、 C-q <SPC>と打ちます。
正規表現のインクリメンタルサーチ中に正規表現に文字を加えると、 カーソルをもとに戻して探索し直すことがあります。 たとえば、`foo'を探索し終えたときに`\|bar'を追加したとします。 最初の`bar'が最初の`foo'に先行する場合には、 カーソルはまえに戻ります。
正規表現の一括型探索は、関数re-search-forward
と
re-search-backward
で行われます。
これらは、M-xで呼び出したり、キーに割り当てたり、あるいは、
C-M-s <RET>やC-M-r <RET>として
正規表現のインクリメンタルサーチの方法で起動したりできます。
正規表現のインクリメンタルサーチコマンドに前置引数を指定すると、
isearch-forward
やisearch-backward
のように、
普通の文字列探索を行います。
See Incremental Search。