取字符串里面的数字
有一个字符串str(setq str "你好Q1000X10X1000.0 天气100 太阳10" )
如何把里面的数字取出来,放到n1,n2,n3,n4,n5?
求得 n1="1000"
n2="10"
n3="1000.0"
n4="100"
n5="10"
(getNumberS"你好Q1000X10X1000.0 天气100 太阳10") =》(1000 10 1000.0 100 10)
;;自贡黄明儒--提取数字
(defun getNumberS (str / ASC N STR1 STRN)
(setq n 1)
(setq str1 "")
(repeat (strlen str)
(setq strn (substr str n 1))
(setq Asc (ascii strn))
(if (or (and (> Asc 47) (< Asc 58)) (= Asc 46))
(setq str1 (strcat str1 strn))
(setq str1 (strcat str1 " "))
)
(setq n (1+ n))
)
(strinSplitS str1)
)
(defun strinSplitS (str / lst)
(setq str (STRCAT "(" str ")"))
(setq lst (read str))
(setq lst (mapcar 'VL-PRINC-TO-STRING lst))
)
页:
[1]