38

How to check if a string s1 is a substring of another string s2?

For example (test-substring "f t" "df tj") --> t, (test-substring "ft" "df tj") --> nil.

Name
  • 7,849
  • 4
  • 41
  • 87

3 Answers3

53

The standard Emacs Lisp approach is regular expression matching:

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

cl-search can do that (and also returns the index of the substring, if found):

ELISP> (cl-search "f t" "df tj")
1 (#o1, #x1, ?\C-a)
ELISP> (cl-search "ft" "df tj")
nil
legoscia
  • 6,072
  • 30
  • 54
0

By the way, I also suggest string-match

(string-match REGEXP STRING &optional START) Probably introduced at or before Emacs version 17.

(string-match "12" "14 bla bla 12999") => 11