明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1182|回复: 4

[已解答] 求助一个关于字符串表的问题

[复制链接]
发表于 2014-9-24 10:49 | 显示全部楼层 |阅读模式
有一个表像这样'("****" "*****" "**H**" "*****" "***H**" "***")
希望得到这样-> '(("****" "*****" )("*****" ) ("***"))
也就是以H为关键字分割表。

发表于 2014-9-24 11:26 | 显示全部楼层
对映关系如何呢!?
发表于 2014-9-24 11:33 | 显示全部楼层
  1. (defun tt(lst str)
  2.   (setq l1 nil l2 nil)
  3.   (repeat (length lst)
  4.     (setq l0(car lst)
  5.           lst(cdr lst)
  6.     )
  7.     (if (wcmatch l0 (strcat "*" str "*"))
  8.       (if l1
  9.         (setq l2 (cons (reverse l1) l2)
  10.               l1 nil
  11.         )
  12.       )
  13.       (setq l1 (cons l0 l1))
  14.     )
  15.   )
  16.   (if l1 (setq l2 (cons l1 l2)))
  17.   (reverse l2)
  18. )

好久不写了,只能整点最简单的方法了。
 楼主| 发表于 2014-9-24 11:56 | 显示全部楼层
ll_j 发表于 2014-9-24 11:33
好久不写了,只能整点最简单的方法了。

成了!好评!
发表于 2014-9-25 16:34 | 显示全部楼层
我也整一下跟楼主要求差不多的
  1. ;;(setq lst '("aaaa" "bbb" "aHjjj" "nHii" "nHii" "aaaa" "bbb" "aHjjj" "nHii" "cc" "bccb"))
  2. ;;=>(("aaaa" "bbb") ("aHjjj" "nHii" "nHii") ("aaaa" "bbb") ("aHjjj" "nHii") ("cc" "bccb"))
  3. (defun w1 (LST / FLAG FLAG1 L L1 SCOR)  
  4.   (while (and
  5.            (setq L (car lst))
  6.            (setq lst (cdr lst))
  7.          )
  8.     (cond ((vl-string-search "H" L) (setq Flag1 T))
  9.           (T (setq Flag1 nil))
  10.     )
  11.     (cond ((not (equal Flag1 Flag)) (setq scor (cons (reverse L1) scor)) (setq L1 nil)))
  12.     (setq L1 (cons L L1))
  13.     (setq Flag Flag1)
  14.   )
  15.   (setq L1 (cons L L1))  
  16.   (reverse (cons (reverse L1) scor))
  17. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-25 08:27 , Processed in 1.079994 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表