Как проверить в elisp, является ли строка подстрокой другой строки?

25

Как проверить, является ли строка s1подстрокой другой строки s2?

Например (test-substring "f t" "df tj") --> t, (test-substring "ft" "df tj") --> nil.

название
источник

Ответы:

36

Стандартный подход Emacs Lisp - сопоставление регулярных выражений:

(string-match-p (regexp-quote needle) haystack)
lunaryorn
источник
14

cl-search может сделать это (а также возвращает индекс подстроки, если найден):

ELISP> (cl-search "f t" "df tj")
1 (#o1, #x1, ?\C-a)
ELISP> (cl-search "ft" "df tj")
nil
legoscia
источник
1
Спасибо, это правильно отвечает на вопрос. Позвольте мне ждать некоторых других решений.
Имя