- (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")
|