比较lisp中的字符串

时间:2016-07-04 09:04:27

标签: lisp common-lisp

我正在尝试使用lisp检查另一个字符串中是否存在字符串。我尝试了以下方法:

    (string<=  "walk" "wall")

它给出了:“3”

我需要做的是检查左侧(^ walk)中的整个字符串是否在右侧(而不是子字符串),因此对于前面的示例,它应该给出false并且使用:

    (string<=  "walk" "walk on")

应该是真的或“4”。

请帮助。

提前致谢

2 个答案:

答案 0 :(得分:6)

在SBCL Common Lisp中

(search "walk" "wall") -> NIL
(search "walk" "walk on") -> 0

因此0表示第一场比赛的索引。如果你想要第一场比赛的结束,你可以做

(let ((pat "walk"))
  (+ (length pat) (search pat "walk on"))) -> 4

答案 1 :(得分:3)

根据您的评论,您正在寻找字符串前缀。 Common Lisp的成语是(string= pattern haystack :end2 (length pattern))