マッチする文字列を後ろから探す。
http://d.hatena.ne.jp/whitypig/20091102/1257187523
with-temp-bufferとre-search-backwardを組み合わせると惜しい結果にはなる。
一文字ずれてしまう。
(defvar str "This is a foo that is not same as the foo appeared in that sentence written by foo.") (defun string-match-backward (regexp string &optional start) (with-temp-buffer (insert string) (when start (goto-char start)) (re-search-backward regexp nil t 1))) (string-match-backward "foo" str) ; => 80 (string-match-backward "foo" str 79) ; => 39 (when (string-match-backward "foo" str) (match-string 0 str)) ; => oo.