(last-index-of needle str &opt case-sens)
为前,
(last-index-of "car" "carbikecar'")
必须返回
7
如何在elisp中做到这一点?
答案 0 :(得分:1)
要完成此操作,您可以在循环中使用string-match
重复搜索输入字符串,返回找到的任何最后一个匹配项的索引:
(defun last-index-of (regex str &optional ignore-case)
(let ((start 0)
(case-fold-search ignore-case)
idx)
(while (string-match regex str start)
(setq idx (match-beginning 0))
(setq start (match-end 0)))
idx))
试试你的例子:
(last-index-of "car" "carbikecar'")
7
此搜索忽略大小写:
(last-index-of "ar" "carbikecaR" t)
8
两个正则表达式搜索,第一个忽略大小写:
(last-index-of "arb?" "carbikecaR" t)
8
(last-index-of "arb?" "carbikecaR")
1