Tör*_*bor 2 emacs elisp strpos
是否存在本机Emacs Lisp函数,其行为类似于strpos()PHP?它应该返回当前缓冲区中第一次出现给定字符串的位置.功能search-forward很好,但它修改了角色位置.
strpos在PHP中对应的函数,用于在另一个字符串中搜索字符串,search来自cl包:
(require 'cl)
(search needle haystack :start2 offset)
Run Code Online (Sandbox Code Playgroud)
如果要在缓冲区内搜索字符串,请使用search-forward.由于这会更改当前缓冲区和缓冲区内的点,因此需要将函数包装在内部save-excursion; 这是一个常见的Emacs Lisp成语.您还应该将函数包装起来save-match-data,以免干扰对代码调用的搜索.
(save-match-data
(save-excursion
(set-buffer haystack)
(goto-char (or offset (point-min)))
(let ((pos (search-forward needle nil t)))
...)))
Run Code Online (Sandbox Code Playgroud)