Jak sprawdzić w elisp, jeśli ciąg znaków jest podciągiem innego ciągu?


25

Jak sprawdzić, czy ciąg znaków s1jest podciągiem innego ciągu s2?

Na przykład (test-substring "f t" "df tj") --> t, (test-substring "ft" "df tj") --> nil.

Odpowiedzi:


36

Standardowym podejściem Emacsa Lispa jest dopasowanie wyrażeń regularnych:

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

14

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

1
Dzięki, to poprawnie odpowiada na pytanie. Poczekam na kilka innych rozwiązań.
Imię,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.