Як перевірити в elisp, якщо рядок є підрядком іншої рядки?


25

Як перевірити, чи рядок s1є підрядком іншої рядки s2?

Наприклад (test-substring "f t" "df tj") --> t, (test-substring "ft" "df tj") --> nil.

Відповіді:


36

Стандартний підхід Emacs Lisp - це регулярне узгодження виразів:

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

14

cl-search може це зробити (а також повертає індекс підрядки, якщо його знайдено):

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

1
Дякую, це правильно відповідає на питання. Дозвольте мені почекати деяких інших рішень.
Ім'я
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.