regex - emacs lisp匹配任意字符串中的字符串匹配

标签 regex emacs escaping elisp string-matching

在 emacs lisp 中,我只知道函数 string-match[-p],但我不知道将文字字符串与字符串匹配的方法。

例如假设我有一个由某个函数生成的字符串,并且想知道另一个字符串是否包含它。在许多情况下 string-match-p 可以正常工作,但是当生成的字符串包含正则表达式语法时,它会导致意外行为,如果包含的正则表达式语法无效(例如不平衡引用),甚至可能会崩溃括号 \(, \))。

  1. emacs lisp 中的 some 函数是否类似于 string-match-p 但不解释正则表达式语法?
  2. 由于正则表达式匹配是在 C 中实现的,我假设匹配正确的正则表达式比某些 substring/string= 循环更快;是否有某种方法可以将任意字符串转义为匹配该字符串且仅匹配该字符串的正则表达式?

最佳答案

你在找regexp-quote吗?

文档说:

(regexp-quote STRING)

Return a regexp string which matches exactly STRING and nothing else.

而且我不知道你在 #2 中的假设是否正确,string= 应该更快...

关于regex - emacs lisp匹配任意字符串中的字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17175149/

相关文章:

java相当于python正则表达式

windows - Windows 上的 Dired 排序错误(使用 Cygwin Emacs)

emacs - 如何在emacs helm-mode中复制文件的路径

shell脚本: single quote in execute

javascript - 正则表达式用 Javascript 替换第 n 个元素

java - 使用 Java 的正则表达式类解析数值

file - emacs lisp代码添加文件进行监控

bash - 在不重新启动 xterm 的情况下重新加载 .Xresources

bash - 如何在 bash 中回显文字字符串 "-e"(仅此而已)?

python - 验证 Python 中的字符串中存在多少对括号