請教:如何提取"DETAIL 2:1"中數字2和1
如題,想讓程序提取2和1,即分別提取“:”前後數字,有沒有好的辦法? 先謝謝了!! 单依楼主所举之例 SubStr 即可处理实务上还有着什么样的可能变化!? 回复 Andyhon 的帖子
呵,回帖真快,可能是其它值,1位,2位,位置也不固定!但“:”固定會有,就是要知道它前後的數字分別是什麼!!謝謝!!!! 明确些,举经常性遇上的实例
因为编程是钉住条件在叙述底
(mapcar 'chr (vl-remove-if '(lambda (x) (or (> x 57)(< x 48))) (VL-STRING->LIST "DETAIL 2:1")))
;;;返回 '("2" "1")
回复 Andyhon 的帖子
这是一个放大图的放大比例标示,可能是4:1、10:1、15:2......
我想通过这个信息知道线性标注比例的值,即4:1等于放大4倍,线性标注比例的值为1/4=0.25 谢谢各位回帖,问题已被版主解决! 本帖最后由 Andyhon 于 2010-12-27 22:02 编辑
Command: (setq str "DETAIL 2:1")
"DETAIL 2:1"
Command: (substr str 8 1)
"2"
Command: (substr str 10 1)
"1"
(setq str "DETAIL 12:1")
(setq strR (substr str 8)
Strnn (Strlen StrR)
Strz (substr StrR Strnn)
StrA (substr strR 1 (- Strnn 2))
)
回复 Andyhon 的帖子
这个方法我知道,但2和1的位数和位置不固定,前面的内容也不固定,不能完全解决问题!
版主GU_xl可行,刚刚偿试了一下“DETAI L 15:21”结果为("1" "5" "2" "1")
就有问题了,不知能不能返回("15" "21")
(mapcar 'chr (vl-remove-if '(lambda (x) (or (> x 57)(< x 48)))
(VL-STRING->LIST "DETAIL 15:21")))
("1" "5" "2" "1") 本帖最后由 crazylsp 于 2011-4-21 09:42 编辑
(setq a(vl-string-right-trim "
页:
[1]
2