¿Cómo verificar en elisp si una cadena es una subcadena de otra cadena?

25

¿Cómo verificar si una cadena s1es una subcadena de otra cadena s2?

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

Nombre
fuente

Respuestas:

36

El enfoque estándar de Emacs Lisp es la coincidencia de expresiones regulares:

(string-match-p (regexp-quote needle) haystack)
Lunaryorn
fuente
14

cl-search puede hacer eso (y también devuelve el índice de la subcadena, si se encuentra):

ELISP> (cl-search "f t" "df tj")
1 (#o1, #x1, ?\C-a)
ELISP> (cl-search "ft" "df tj")
nil
legoscia
fuente
1
Gracias, esto responde correctamente la pregunta. Déjame esperar algunas otras soluciones.
Nombre