明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1608|回复: 2

[基础] 求助下字符串里的字母数值区分

[复制链接]
发表于 2009-12-11 21:05:00 | 显示全部楼层 |阅读模式

我需要从文本文档里读取一系列的数据,格式为 字母+数字+汉字。然后再把数字赋值给前面的字母,例如“abc321”

我把abc当成变量,把321赋值给abc。当然前面的字母个数不确定,数字个数也不确定。那我该如何来区分一个字符串里

的字母跟数值呢?

发表于 2009-12-12 01:16:00 | 显示全部楼层

用这个函数可将你的字母和数字分开,如:(Split "a12b3c45de567fgh890")-->
("a" 12 "b" 3 "c" 45 "de" 567 "fgh" 890)

(defun Split (str / tmp i n p x len lst1 lst)
  (setq tmp  (vl-string->list str)
 lst1 (mapcar '(lambda (x) (and (<= 48 x) (<= x 57))) tmp)
 n    (length lst1)
 i    0
  )
  (while (< i n)
    (setq x (nth i lst1)
   i (1+ i)
    )
    (if (= i 1)
      (setq p 1
     len 1
      ) ;else
      (if (= x (nth (- i 2) lst1))
 (setq len (1+ len)) ;else
 (setq tmp (substr str p len)
       tmp (if x
      tmp
      (atoi tmp)
    )
       lst (append lst (list tmp))
       p   i
       len 1
 )
      ) ;if
    ) ;if
  ) ;while
  (if (> n 0)
    (setq tmp (substr str p len)
   tmp (if x
  (atoi tmp)
  tmp
       )
   lst (append lst (list tmp))
    )
  )
  lst
)

 楼主| 发表于 2009-12-12 09:29:00 | 显示全部楼层

感谢楼上的,但是这样对小数点起不了作用。例如abc32.5 我要的是“abc” “32.5”   而不是“abc” “32”“ .”“ 5”

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-23 11:08 , Processed in 0.173277 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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