我正在尝试使用lisp检查另一个字符串中是否存在字符串。我尝试了以下方法:
(string<= "walk" "wall")
它给出了:“3”
我需要做的是检查左侧(^ walk)中的整个字符串是否在右侧(而不是子字符串),因此对于前面的示例,它应该给出false并且使用:
(string<= "walk" "walk on")
应该是真的或“4”。
请帮助。
提前致谢
答案 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))
。