如何在Emacs Lisp中捕获字符串的一部分?

时间:2014-02-02 16:33:45

标签: regex emacs elisp

在php中我可以写

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

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

1 个答案:

答案 0 :(得分:6)

像这样:

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