Wie prüfe ich in elisp, ob ein String ein Teilstring eines anderen Strings ist?

25

Wie überprüfe s1ich , ob eine Zeichenfolge eine Teilzeichenfolge einer anderen Zeichenfolge ist s2?

Zum Beispiel (test-substring "f t" "df tj") --> t, (test-substring "ft" "df tj") --> nil.

Name
quelle

Antworten:

36

Der Standardansatz von Emacs Lisp ist die Suche nach regulären Ausdrücken:

(string-match-p (regexp-quote needle) haystack)
Mondhorn
quelle
14

cl-search kann das (und gibt auch den Index der Teilzeichenfolge zurück, falls gefunden):

ELISP> (cl-search "f t" "df tj")
1 (#o1, #x1, ?\C-a)
ELISP> (cl-search "ft" "df tj")
nil
Legoscia
quelle
1
Danke, das beantwortet die Frage richtig. Lassen Sie mich auf einige andere Lösungen warten.
Name