¿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.

Respuestas:


36

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

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

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

1
Gracias, esto responde correctamente la pregunta. Déjame esperar algunas otras soluciones.
Nombre
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.