;; This file: http://user.it.uu.se/~embe8573/conf/emacs-init/match-data-format.el (defun make-match-list (num string) (let ((match (match-string num string))) (when match (cons match (make-match-list (1+ num) string) )))) (defun match-data-format (data match format-str) (save-match-data (string-match match data) (apply (function message) format-str (make-match-list 1 data)) )) (when nil (match-data-format "From: Joe Hacker " "\\(.*\\): *\\(.*[[:alnum:]]\\) *<\\(.*\\)>" "header is: %s\nname is: %s\ne-mail is: %s") ; eval me )