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.

Réponses:


36

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

(string-match-p (regexp-quote needle) haystack)

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

1
Merci, cela répond correctement à la question. Permettez-moi d'attendre d'autres solutions.
Nom du
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.