Next: , Previous: Index, Up: Text handling


10.3 正規表現で検索する

正規表現の検索は組み込みマクロregexpで行います。

     regexp(string, regexp, opt replacement)

このマクロはregexpstringの中を検索します。 正規表現の構文はGNU Emacsのものと同じです。 See Syntax of Regular Expressions.

replacementを省略すると、regexpstringの中で regexpに最初にマッチした部分のインデックスに展開されます。 regexpstringのどこにもマッチしない場合は-1に展開されます。

     regexp(`GNUs not Unix', `\<[a-z]\w+')
     ⇒5
     regexp(`GNUs not Unix', `\<Q\w*')
     ⇒-1

replacementを与えたときは、regexpはこの引数の値に展開されます。 このときreplacementに含まれる‘\n’はregexp中の n番目のカッコでくくられた部分式にマッチしたテキストに置き換えられ、 ‘\&’は正規表現全体にマッチしたテキストに置き換えられます。

     regexp(`GNUs not Unix', `\w\(\w+\)$', `*** \& *** \1 ***')
     ⇒*** Unix *** nix ***

組み込みマクロregexpは引数を与えたときだけ認識されます。