Comment vérifier dans elisp si une chaîne est une sous-chaîne d'une autre chaîne?

25

Comment vérifier si une chaîne s1est une sous-chaîne d'une autre chaîne s2?

Par exemple (test-substring "f t" "df tj") --> t, (test-substring "ft" "df tj") --> nil.

prénom
la source

Réponses:

36

L'approche Emacs Lisp standard est la correspondance des expressions régulières:

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

cl-search peut le faire (et retourne également l'index de la sous-chaîne, s'il est trouvé):

ELISP> (cl-search "f t" "df tj")
1 (#o1, #x1, ?\C-a)
ELISP> (cl-search "ft" "df tj")
nil
legoscia
la source
1
Merci, cela répond correctement à la question. Permettez-moi d'attendre d'autres solutions.
Nom du