Come verificare in elisp se una stringa è una sottostringa di un'altra stringa?


25

Come verificare se una stringa s1è una sottostringa di un'altra stringa s2?

Per esempio (test-substring "f t" "df tj") --> t, (test-substring "ft" "df tj") --> nil.

Risposte:


36

L'approccio standard di Emacs Lisp è la corrispondenza delle espressioni regolari:

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

14

cl-search può farlo (e restituisce anche l'indice della sottostringa, se trovato):

ELISP> (cl-search "f t" "df tj")
1 (#o1, #x1, ?\C-a)
ELISP> (cl-search "ft" "df tj")
nil

1
Grazie, questo risponde correttamente alla domanda. Fammi aspettare altre soluzioni.
Nome
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.