Jak sprawdzić, czy ciąg znaków s1
jest podciągiem innego ciągu s2
?
Na przykład (test-substring "f t" "df tj") --> t
,
(test-substring "ft" "df tj") --> nil
.
Standardowym podejściem Emacsa Lispa jest dopasowanie wyrażeń regularnych:
(string-match-p (regexp-quote needle) haystack)
cl-search
można to zrobić (a także zwraca indeks podłańcucha, jeśli zostanie znaleziony):
ELISP> (cl-search "f t" "df tj")
1 (#o1, #x1, ?\C-a)
ELISP> (cl-search "ft" "df tj")
nil