elisp regexp搜索字符串,而不是缓冲区

Eli*_*Eli 41 regex string emacs buffer elisp

我一直在emacs lisp文档中搜索如何将正则表达式搜索到字符串中.我找到的只是如何在缓冲区中执行此操作.

有什么我想念的吗?我应该将我的字符串吐入临时缓冲区并在那里搜索它吗?这只是elisp的编码风格,我会习惯吗?有没有这个问题的标准解决方案.当我应该能够直接搜索已经存在的变量时,操作缓冲区似乎很复杂.

Pet*_*tai 28

以下是对Emacs wiki中字符串内容与缓冲区内容的讨论.只需将您的字符串存储为变量即可.

关于字符串的棘手问题是你通常不修改字符串本身(除非你在字符串上执行数组函数,因为字符串是一个数组,但通常应该避免这种情况),但是你返回修改后的字符串.

无论如何,这是在elisp中使用字符串的示例.

这将修剪字符串末尾的空格:

(setq test-str "abcdefg  ")
(when (string-match "[ \t]*$" test-str)
    (message (concat "[" (replace-match "" nil nil test-str) "]")))
Run Code Online (Sandbox Code Playgroud)


Tho*_*ler 12

你正在寻找的功能是string-match.如果需要重复进行匹配,请使用它返回的索引作为下一次调用的可选"start"参数.该文档位于ELisp手册的"正则表达式搜索"一章中.