Go to the first, previous, next, last section, table of contents.

正規表現のマッチングを行なう関数

Function: string-match regexp string &optional start

この関数は、(string 中で)正規表現 regexp に最初にマッチする場所のインデッ クスか、 (マッチしない場合) nil を返します。 start が non-nil の場合、サー チは string 中のそのインデックスから行ないます。

マッチ部分の先の(最初の)文字のインデックスは (match-end 0) で作られます。 0 でないアーギュメントを持つ match-end と match-befinning はパターン中の括 弧構成(訳注:parenthesis constructs) にマッチするサブストリングのインデッ クスを与えます。

  (string-match "X[a-z]*Y" "X1 Y Xab cY XabcY")
  => 12
  (match-end 0)
  => 17

Function: looking-at regexp

この関数は、カレントバッファ中のポイントの後に(すぐ)続くテキストが正規表現 regexp にマッチするか否かを調べます。 "(すぐ)続く" ということは、"サーチが anchored(訳注:アンカー) され、ポイントに続く最初の文字からマッチが成功し なくてはいけない" ということです。マッチする場合、結果は t で、そうでない 場合 nil になります。

ポイントは動かしませんが、マッチデータはアップデートされます。

次の例において、ポイントは T の直前に置かれています。別の場所に置かれてい たとすると、結果は nil になったはずです。

  ---------- Buffer: foo ----------
  I read "The cat in the hat
  comes back" twice.
  ---------- Buffer: foo ----------
  (looking-at "The cat in the hat$")
  => t

Function: skip-chars-forward chars &optional limit

この関数は、 (与えられた文字の集まりをスキップし) カレントバッファ中のポイ ントを前に動かします。 (Emacs は)最初ポイントに続く文字を調べ、これが chars にマッチする場合、次の文字を調べます。マッチしない文字が見つかるまで これを続けます。

chars は、] が特殊文字でない点と \ が ^ や - や \ をクォートする点を除き正 規表現 [...] 中のものに似ています。このため、"a-zA-Z" は全ての英文字をス キップし、英文字でないものの最初のものの前で止まります。また "^a-zA-Z" は 英文字でないものをスキップし最初の英文字の前で止まります。

limit (これは数字かマーカーでなくてはいけません) が与えられた場合、これは ポイントが(そこまで)スキップすることのできる最大の(バッファ内)ポジションに なります。 "ポイントは limit までに止まる" ことが保証されています。

次の例において、ポイントは T の直前に置かれています。フォームを評価した 後、ポイントは行の終り(hat の t とニューラインとの間) に位置付けられます。 この regexp は(全ての)英文字とスペースとをスキップし、ニューラインはスキッ プしません。

  ---------- Buffer: foo ----------
  I read "The cat in the hat
  come back" twice.
  ---------- Buffer: foo ----------
  (skip-chars-forward "a-zA-Z ")
  => t

Function: backward-prefix-chars

この関数は、シンタックス prefix (訳注:??)を持つ(複数の)文字を越え、ポイン トを後方に動かします。

Function: skip-chars-backward chars &optional limit

この関数は、 chars 中の(全ての)文字をスキップし、ポイントを後方に動かしま す。 skip-chars-forward と対応しています。

Command: re-search-forward regexp &optional limit noerror repeat

この関数は、 (カレントバッファで) 正規表現 regexp にマッチするテキストスト リングを求め、前方にサーチします。これは regexp にマッチしないテキストを (全て)スキップし、マッチしたテキストストリングの最初のストリングの終りにポ イントを置きます。

サーチが成功した(i.e., ポイントの先に regexp にマッチするテキストが存在す る)場合、ポイントをそのテキストの終りに置き、t を返します。 regexp にマッ チするテキストが存在しない場合、エラーを出します。

limit (これは数字かマーカーでなくてはいけません) が与えられた場合、これは

ポイントが(そこまで)スキップすることのできる最大の(バッファ内)ポジションに なります。 "ポイントは limit までに止まる" ことが保証されています。マッチ するものが、そのポジションを越えていてはいけません。

(書き直し!!) noerror が t の場合、サーチが失敗すると(re-search-forward は) エラーを出さずに nil を返すだけになります。これが nil でも t でもない場 合、ポイントを limit まで動かします。 re-search-forward は nil を返しま す。

repeat (正の数字でなくてはいけません) が与えられた場合、(その回数だけ)サー チを繰り返します。

インタラクティブに呼ばれた場合、 regexp を求め(ミニバッファに)プロンプトを 出します。

次の例において、ポイントは T の直前に置かれています。フォームを評価した 後、ポイントは行の終り(hat の t とニューラインとの間) に位置付けられます。

  ---------- Buffer: foo ----------
  I read "The cat in the hat
  come back" twice.
  ---------- Buffer: foo ----------
  (re-search-forward "[a-z]+" nil t 5)
  => t

Command: re-search-backward regexp &optional limit noerror repeat

この関数は、 (カレントバッファで) 正規表現 regexp にマッチするテキストスト リングを求め、後方にサーチします。 re-serach-forward と対応しています。

Function: regexp-quote string

この関数は、 string に正確にマッチし他のものにマッチしない正規表現のストリ ングを返します。これは、正確なストリングで正規表現サーチを呼ぶ場合や、ある

ストリングとその他のストリングから regexp を作る (e.g. (concat "^" (regexp-quote string) "$") )場合、それを用意にします。

  (regexp-quote "^The cat$")
  => "\\^The cat\\$"


Go to the first, previous, next, last section, table of contents.