Поскольку mamboking уже упомянул , строка документа match-string
расскажет вам все о:
(match-string NUM &optional STRING)
⋮
STRING should be given if the last search was by `string-match' on STRING.
Если вы также проверите документацию string-match
, вы увидите, что она предлагает использовать match-beginning
и match-end
для получения совпадений. Это встроенные функции в C.
(if (string-match "\\([a-z]\\)" "123 test string")
(match-beginning 1)) ;; 4
Эти функции возвращают только позицию начала или конца сопоставленного текста, поэтому match-string
также нужна исходная строка. При использовании search-forward
или re-search-forward
, match-beginning
и match-end
будут возвращать позиции в буфере, поэтому match-string
может легко извлечь интересующие совпадения из содержимого буфера.
Возможно, вы также захотите взглянуть на match-string-no-properties
, который ведет себя так же, как и match-string
, ожидая, что он возвращает строку текста, совпадающую без свойств текста.