elisp中的match-string没有返回字符串匹配的字符串

ygr*_*ram 4 regex elisp

我有一个问题,我在字符串匹配后无法获得匹配字符串.我认为字符串匹配有效,至少它返回非nil,但是当我尝试获取match-string时出现错误.我该怎么办?

失败的功能:

(defun small-test ()
  (string-match "\\([0-9]+\\)-v\\([0-9]+\\).txt" "2011-v9.txt")
  (message (match-string 1))
  )
Run Code Online (Sandbox Code Playgroud)

Lin*_*cer 9

从Ch f match-string,我建议你阅读底线:

(匹配字符串NUM和可选的STRING)

返回上次搜索匹配的文本字符串.NUM指定最后一个regexp中的括号表达式.如果NUMth对不匹配,或者少于NUM对,则值为nil.零表示整个正则表达式或整个字符串匹配的整个文本. 如果STRING上的最后一次搜索是"字符串匹配",则应该给出STRING.