Next: , Previous: , Up: Text   [Contents][Index]


31.3 テキストの比較

以下の関数により最初にバッファー内のテキストを文字列内にコピーすることなく、バッファー内のテキスト断片を比較することが可能になります。

Function: compare-buffer-substrings buffer1 start1 end1 buffer2 start2 end2

この関数により1つのバッファー、または2つの異なるバッファーの2つの部分文字列(substrings)を比較できる。最初の3つの引数はバッファーとそのバッファー内の2つの位置を与えることにより、1つの部分文字列を指定する。最後の3つの引数は、同様の方法によりもう一方の部分文字列を指定する。buffer1buffer2のいずれか、または両方にたいしてカレントバッファーを意味するnilを使用できる。

1つ目の部分文字列が2つ目の部分文字列より小なら負、大なら正、等しければ値は0となる。結果の絶対値は部分文字列内で最初に異なる文字のインデックスに1を和した値。

case-fold-searchが非nilなら、この関数はcase(大文字小文字)の違いを無視する。テキストプロパティは常に無視される。

カレントバッファー内にテキスト‘foobarbar haha!rara!がある。そしてこの例では2つの部分文字列が‘rbar ’と‘rara!’だとする。1つ目の文字列の2つ目の文字が大きいので値は2となる。

(compare-buffer-substrings nil 6 11 nil 16 21)
     ⇒ 2