明27662 发表于 2019-10-9 13:43:35

取字符串里面的数字

有一个字符串str
(setq str "你好Q1000X10X1000.0 天气100 太阳10" )
如何把里面的数字取出来,放到n1,n2,n3,n4,n5?


求得 n1="1000"
n2="10"
n3="1000.0"
n4="100"
n5="10"


start4444 发表于 2019-10-9 14:23:52

(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]
查看完整版本: 取字符串里面的数字