re-search-forward 関数
¶re-search-forward 関数は search-forward 関数と非常によく似ています。(search-forward
関数 を参照してください。)
re-search-forward
は正規表現を検索します。検索に成功した場合、ターゲットの最後の文字の直後にポイントを移動します。検索が逆順だった場合は、ターゲットの最初の文字の直前にポイントを移動します。re-search-forward に true のときに t を返すよう指定できます。(したがって、ポイントの移動は副作用となります。)
search-forwardと同様に、re-search-forward関数は4つの引数を取ります:
nil
を指定すると、検索に失敗した際に関数がエラーを通知(およびメッセージを出力)します。それ以外の値を指定すると、検索失敗時に nil を、検索成功時に t を返します。
re-search-forwardは逆方向に検索します。
re-search-forwardのテンプレートは次のようになっています。
(re-search-forward "regular-expression"
limit-of-search
what-to-do-if-search-fails
repeat-count)
第2、第3、第4引数は省略可能です。ただし、最後の2つの引数のいずれか、あるいは両方に値を渡したい場合は、それに先立つすべての引数にも値を渡す必要があります。そうしないと、Lispインタプリタはどの引数に値を渡しているのかを誤認してしまいます。
forward-sentence 関数では、正規表現は変数 sentence-end の値となります。簡単に言うと、次のようになります。
"[.?!][]\"')}]*\\($\\| \\| \\)[ ]*"
検索範囲は段落の末尾までとなります(文が段落を超えることはないため)。検索に失敗した場合、関数は nil を返し、繰り返し回数は forward-sentence 関数の引数で指定されます。