- A+
所属分类:CAD二次开发
今天写个程序用到在字串符里面提取数字,因为字符串里面有个型号是数字表示的,所有用到提取字符串里面的数字,或者小数,也就是一个字符串里面有数字小数点,或者英文,加减或者特殊符号,我只要里面的数字。如,我有一个表,(YM10 M5 M3 M9 MM1.5),结果( 10 5 3 9 1.5)
写了一个自定义函数,lsp 提取字符串中的数字,返回指定字符的数量个数
;提取字串符里面的数字,返回数字
(defun vl-string->number(string_nu / nu0 nu1 nu2 nu2 number num)
(setq num(vl-string->list string_nu)
nu0(vl-string->list ".0123456789");需要保留的数据
n num)
(setq nu2(length num))
(repeat nu2
(setq nu1(car num))
(setq nu3(member nu1 nu0)
num(cdr num))
(if(/= nu3 nil)
(setq number(cons nu1 number))
)
)
(vl-list->string (reverse number))
)
复制
测试,调用
(defun c:kkk( /)
( vl-string->number "m10.51")
)
复制
以上运行结果,返回 10.51
如果是一个表,请循环调用即可,在组成一个新表即可