Como verificar no elisp se uma string é uma substring de outra string?

25

Como verificar se uma string s1é uma substring de outra string s2?

Por exemplo (test-substring "f t" "df tj") --> t, (test-substring "ft" "df tj") --> nil.

Nome
fonte

Respostas:

36

A abordagem padrão do Emacs Lisp é a correspondência de expressões regulares:

(string-match-p (regexp-quote needle) haystack)
lunaryorn
fonte
14

cl-search pode fazer isso (e também retorna o índice da substring, se encontrado):

ELISP> (cl-search "f t" "df tj")
1 (#o1, #x1, ?\C-a)
ELISP> (cl-search "ft" "df tj")
nil
legoscia
fonte
1
Obrigado, isso responde corretamente à pergunta. Deixe-me esperar por outras soluções.
Nome