拆分字符串
(defun str2lst (str / nstr)(if (= str "")
nil
(cond ((> 216 (ascii str) 175)
(cons(substr str 1 2)
(str2lst (substr str 3))
)
)
((wcmatch str "#*#`.#*")
(cons
(setq nstr
(strcat
(setq
nstr (rtos (atof str))
)
(if
(= "0"
(substr
str
(1+ (strlen nstr))
1
)
)
"0"
""
)
)
)
(str2lst
(substr str (1+ (strlen nstr)))
)
)
)
((wcmatch str "#*")
(cons
(setq
nstr (itoa (atoi str))
)
(str2lst
(substr str (1+ (strlen nstr)))
)
)
)
((wcmatch str "@*")
(cons(substr str 1 1)
(str2lst (substr str 2))
)
)
(t
(cons(substr str 1 1)
(str2lst (substr str 2))
)
)
)
)
)
(STR2LST "k1y12.30人2+1")---》
("k" "1" "y" "12.30" "人" "2" "+" "1")
轮回 发表于 2021-11-1 09:41
测试了,cad2012是可以的,
cad2008,UNITMODE设置为0,也不行,
不知道 要不你用6楼的这个 是随手写的 字符串还是用正则表达式吧,处理起来比较方便。
(xxexp "[\\d|\\.]+|\\D+" "few0.25sdi03Ep检" nil)
("few" "0.25" "sdi" "03" "Ep检")
(xxexp "[\\d|\\.]+|\\D+" "k1y12.30人2+1" nil)
("k" "1" "y" "12.30" "人" "2" "+" "1")
(defun xxexp (pat str key / end)
;(princ "\n ★\"一刀屠文\"(xxexp)(xxexpr) = 对字符串进行正则表达式测试及替换-by 梁雄啸.2007.7")
(vl-load-com)
(if (not *xxvbsexp)
(setq *xxvbsexp (vlax-get-or-create-object "VBScript.RegExp"))
)
(vlax-put *xxvbsexp 'Pattern pat)
(if (not key)(setq key ""))
(setq key (strcase key))
(setq keys '(("I""IgnoreCase")("G""Global")("M""Multiline")))
(mapcar '(lambda(x)
(if (wcmatch key (strcat "*" (car x) "*"))
(vlax-put *xxvbsexp (read(cadr x)) 0)
(vlax-put *xxvbsexp (read(cadr x)) -1)
))
keys)
(setq matches (vlax-invoke *xxvbsexp 'Execute str))
(vlax-for x matches (setq end (cons (vla-get-value x) end)))
(reverse end)
) (STR2LST "k1y12.30人2+1")
("k" "1.00000" "人" "2" "+" "1")
为什么我生成的是这样的??? 轮回 发表于 2021-10-31 19:51
(STR2LST "k1y12.30人2+1")
("k" "1.00000" "人" "2" "+" "1")
为什么我生成的是这样的???
unitmode系统变量设置成0 (STR2LST "few0.25sdi03Ep检")
返回:("f" "e" "w" "0" "." "25" "s" "d" "i" "3" "3" "E" "p" "检") kkq0305 发表于 2021-10-31 20:03
unitmode系统变量设置成0
测试了,cad2012是可以的,
cad2008,UNITMODE设置为0,也不行, springwillow 发表于 2021-11-1 13:21
字符串还是用正则表达式吧,处理起来比较方便。
end变量可能要改个名字,否则在一些cad版本中提示有冲突 非常好的代码,正需要的 springwillow 发表于 2021-11-1 13:21
字符串还是用正则表达式吧,处理起来比较方便。
你好大神我一直用你的孤帆工具箱可是目前只支持到2019,不知道现在是否支持2022了,如果有了话,麻烦发一个我可以吗,在此万分感谢,祝你新年快乐。我的邮箱664571221@qq.com
页:
[1]