求助一个关于字符串表的问题
有一个表像这样'("****" "*****" "**H**" "*****" "***H**" "***")希望得到这样-> '(("****" "*****" )("*****" ) ("***"))
也就是以H为关键字分割表。
对映关系如何呢!? (defun tt(lst str)
(setq l1 nil l2 nil)
(repeat (length lst)
(setq l0(car lst)
lst(cdr lst)
)
(if (wcmatch l0 (strcat "*" str "*"))
(if l1
(setq l2 (cons (reverse l1) l2)
l1 nil
)
)
(setq l1 (cons l0 l1))
)
)
(if l1 (setq l2 (cons l1 l2)))
(reverse l2)
)
好久不写了,只能整点最简单的方法了。 ll_j 发表于 2014-9-24 11:33 static/image/common/back.gif
好久不写了,只能整点最简单的方法了。
成了!好评! 我也整一下跟楼主要求差不多的;;(setq lst '("aaaa" "bbb" "aHjjj" "nHii" "nHii" "aaaa" "bbb" "aHjjj" "nHii" "cc" "bccb"))
;;=>(("aaaa" "bbb") ("aHjjj" "nHii" "nHii") ("aaaa" "bbb") ("aHjjj" "nHii") ("cc" "bccb"))
(defun w1 (LST / FLAG FLAG1 L L1 SCOR)
(while (and
(setq L (car lst))
(setq lst (cdr lst))
)
(cond ((vl-string-search "H" L) (setq Flag1 T))
(T (setq Flag1 nil))
)
(cond ((not (equal Flag1 Flag)) (setq scor (cons (reverse L1) scor)) (setq L1 nil)))
(setq L1 (cons L L1))
(setq Flag Flag1)
)
(setq L1 (cons L L1))
(reverse (cons (reverse L1) scor))
)
页:
[1]