我也整一下跟楼主要求差不多的 - ;;(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))
- )
|