regex - 如何在 Emacs Lisp 中捕获部分字符串?

标签 regex emacs elisp

在php中我可以写

preg_match('/a(.*)b(.*)c/', '00a123b456c00', $result);

在 $result 中,我将获得 123 中的 $result[1]456 中的 $result[2]a123b456c 中的 $result[0] 。我如何捕获与正则表达式匹配的文本以及它在 Emacs Lisp 中的不同部分?

最佳答案

像这样:

(let ((str "00a123b456c00"))
  (when (string-match "a\\(.*\\)b\\(.*\\)c" str)
    (list (match-string 0 str)
          (match-string 1 str)
          (match-string 2 str))))

关于regex - 如何在 Emacs Lisp 中捕获部分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21513066/

相关文章:

javascript - 删除最后输入的 JavaScript 值

emacs - 启动带有 nix 的 emacs 时出现 Fontconfig 错误

debugging - emacs 调试器 : how can I step-out, 跳过?

emacs - 将字体设置为部分模式行

regex - 如何在 Modsecurity 规则中编辑正则表达式

java - 如何获取组中嵌套括号的内容

ruby-on-rails - 让 mmm 模式在 emacs 24 中工作

emacs - 如何在 Emacs 中保存框架位置?

emacs - Elisp 如何在退出之前向子进程提供带有 process-send-string 的命令

regex - 在 Windows 命令行的 Grep 中使用正则表达式