lisp提取字符串里面的数字,识别字符串里面的小数

  • 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

如果是一个表,请循环调用即可,在组成一个新表即可

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: