找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 771|回复: 11

[求助] [求助]: 如何提取12(2.2)中的12和2.2

[复制链接]
发表于 2005-5-23 23:12:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
(setq zjgd "12(2.2)")

2个数字,后一个在括号里,怎么样分别提取?
挨个字符判断?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-5-24 07:56:50 | 显示全部楼层
未考虑其他组合:
[php](setq front (atof (substr zjgd 1 2))
      back  (atof (substr zjgd 4 3))
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-24 10:42:02 | 显示全部楼层
当字符串长度不固定时,则根据左右括弧的ASCII值判断其位置,再取其中的子字符串。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-24 15:06:16 | 显示全部楼层
3楼的,麻烦详细一点,我也想知道怎么座的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-24 15:46:32 | 显示全部楼层
................
(if (= (substr obj2 v 1) "(" )
(progn
   (setq front (atof (substr obj2 1 (- v 1)) )
      back  (atof (substr obj2 (+ 1  v) ))
............
这样 谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-24 22:53:09 | 显示全部楼层
[php];;;提取括号内外的内容,格式如12.34f(2.2fdf)
(defun str_to_read (str)
  (setq        i 0
        n 0
  )
  (while (/= (substr str (setq i (1+ i)) 1) "("))
  (while (/= (substr str (setq n (1+ n)) 1) ")"))
  (setq        front (substr str 1 (- i 1))
        back  (substr str (+ i 1) (- n i 1))
  )
  (princ "\n内容(前) =  ")
  (princ front)
  (princ "\n内容(后) =  ")
  (princ back)
  (princ)
)[/php]
测试:
命令: (str_to_read "12.0d56sd45(2.245567)")
内容(前) =  12.0d56sd45
内容(后) =  2.245567
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-24 23:31:50 | 显示全部楼层
xyp1964真强,顶~~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-25 02:36:16 | 显示全部楼层
更 简 单 的 :
(setq a (read (strcat "(" (vl-string-translate  "("  " " zjgd))))   

--->(12  2.2)

front -->(car a)
back-->(cadr a)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-25 07:58:12 | 显示全部楼层
[php](defun str_to_read (str)
  (setq        a     (read (strcat "(" (vl-string-translate "(" " " str)))
        front (car a)
        back  (cadr a)
  )
  (princ front)
  (princ " ; ")
  (princ back)
)

(defun str_to_read (str)
  (setq        i     (vl-string-search "(" str)
        n     (vl-string-search ")" str)
        front (substr str 1 i)
        back  (substr str (+ i 2) (- n i 1))
  )
  (princ front)
  (princ " ; ")
  (princ back)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-25 13:41:13 | 显示全部楼层
鼓掌鼓掌;言简意赅;
果然学无止境,佩服;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-25 20:35:10 | 显示全部楼层
不用vl函数,再简化:

front -->(read zjgd)
back-->(caadr  (read  (strcat "("   zjgd ")"   )))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-15 15:14:25 | 显示全部楼层
应该包容多个(),看看这个
(defun test(zifu)
(read(strcat "(" (vl-string-translate ")" " " (vl-string-translate "(" " " zifu)) ")"))
)
测试:
(test "afa(f)123(345)567(sfs)jhkk") 返回 (AFA F 123 345 567 SFS JHKK)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-18 06:39 , Processed in 0.346598 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表