xiaobao02 发表于 2010-12-27 19:45:39

請教:如何提取"DETAIL 2:1"中數字2和1

如題,想讓程序提取2和1,即分別提取“:”前後數字,有沒有好的辦法? 先謝謝了!!

Andyhon 发表于 2010-12-27 19:55:16

单依楼主所举之例 SubStr 即可处理
实务上还有着什么样的可能变化!?

xiaobao02 发表于 2010-12-27 20:09:29

回复 Andyhon 的帖子

呵,回帖真快,可能是其它值,1位,2位,位置也不固定!但“:”固定會有,就是要知道它前後的數字分別是什麼!!謝謝!!!!

Andyhon 发表于 2010-12-27 21:27:28

明确些,举经常性遇上的实例
因为编程是钉住条件在叙述底

Gu_xl 发表于 2010-12-27 21:35:06


(mapcar 'chr (vl-remove-if '(lambda (x) (or (> x 57)(< x 48))) (VL-STRING->LIST "DETAIL 2:1")))
;;;返回 '("2" "1")

xiaobao02 发表于 2010-12-27 21:42:06

回复 Andyhon 的帖子

这是一个放大图的放大比例标示,可能是4:1、10:1、15:2......
我想通过这个信息知道线性标注比例的值,即4:1等于放大4倍,线性标注比例的值为1/4=0.25

xiaobao02 发表于 2010-12-27 21:52:13

谢谢各位回帖,问题已被版主解决!

Andyhon 发表于 2010-12-27 21:52:46

本帖最后由 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))
)

xiaobao02 发表于 2010-12-27 22:07:04

回复 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 发表于 2010-12-27 22:31:34

本帖最后由 crazylsp 于 2011-4-21 09:42 编辑


(setq a(vl-string-right-trim "
页: [1] 2
查看完整版本: 請教:如何提取"DETAIL 2:1"中數字2和1