จะตรวจสอบได้อย่างไรว่าสตริงs1
นั้นเป็นสตริงย่อยของสตริงอื่นs2
หรือไม่?
ตัวอย่างเช่น,(test-substring "f t" "df tj") --> t
(test-substring "ft" "df tj") --> nil
จะตรวจสอบได้อย่างไรว่าสตริงs1
นั้นเป็นสตริงย่อยของสตริงอื่นs2
หรือไม่?
ตัวอย่างเช่น,(test-substring "f t" "df tj") --> t
(test-substring "ft" "df tj") --> nil
คำตอบ:
วิธีมาตรฐาน Emacs Lisp เป็นการจับคู่นิพจน์ปกติ:
(string-match-p (regexp-quote needle) haystack)
cl-search
สามารถทำได้ (และส่งกลับดัชนีของสตริงย่อยหากพบ):
ELISP> (cl-search "f t" "df tj")
1 (#o1, #x1, ?\C-a)
ELISP> (cl-search "ft" "df tj")
nil