2011-03-02 178 views
3

我有一個問題,我無法在字符串匹配後得到匹配字符串。我認爲字符串匹配的作品,至少它返回非零,但我得到一個錯誤,當我嘗試獲取匹配字符串。我應該怎麼做?elisp中的匹配字符串沒有返回匹配字符串匹配的字符串

失敗函數:

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

回答

8

由CH˚F匹配字符串,我建議你讀的底線:

(匹配字符串NUM &可選的字符串)

返回最後一個 搜索匹配的文本字符串。 NUM指定在最後一個 正則表達式中加括號的表達式爲 。如果NUM個對 不匹配,或者存在小於 個NUM對,則值爲零。零表示整個文字 匹配整個正則表達式或整個 字符串。 如果上一次搜索是通過 STRING上的「字符串匹配」發出的,則應該給出STRING。

+0

謝謝,我想我讀透,顯然我沒有。 – ygram 2011-03-02 09:33:09

1
(defun small-test() 
    (setq matched (string-match"\\([0-9]+\\)-v\\([0-9]+\\).txt" "2011-v9.txt")) 
    (message (match-string 1 "2011-v9.txt")) 
) 

應該工作

+0

這真的沒有任何意義。爲什麼要分配「匹配」? – PascalVKooten 2016-01-17 00:27:30