明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: YAOSHIWEI

高手能不能举几个有关正则表达式在和lisp的简单应用

  [复制链接]
发表于 2012-5-30 20:20:09 | 显示全部楼层
本帖最后由 print1985 于 2012-5-30 20:35 编辑


再来个简单的吧 已经很简单了啊
;;;;文本数字刷 只保留数字(含小数点) 去掉非数字
(defun c:fas (/ regex sel i ent ob s)
  (setq regex (vlax-create-object "Vbscript.RegExp"));引用正则表达式控件
  (vlax-put-property regex "IgnoreCase" 0); 不忽略大小写
  (vlax-put-property regex "Global" 1);全文匹配,而不是只匹配第一处
        (if (setq sel (ssget '((0 . "TEXT,MTEXT"))))
        (progn
  (setq i 0)
  (repeat (sslength sel)
    (setq ent (ssname sel i))
    (setq ob (vlax-ename->vla-object ent)) ;转换
    (setq s (vla-get-TextString ob));文字内容
  ;正在表达式提取数字和小数点
  (vlax-put-property regex "Pattern" "[^0-9\\.]")
  (setq s (vlax-invoke-method  regex "Replace" s ""))
  (vlax-put-property ob 'TextString s) ;改变text特性
  (setq i (1+ i))
  )
        ))
(princ)
)

本帖子中包含更多资源

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

x
 楼主| 发表于 2012-5-30 20:26:23 | 显示全部楼层
print1985 发表于 2012-5-30 20:20
再来个简单的吧 已经很简单了啊
;;;;文本数字刷 只保留数字(含小数点) 去掉非数字
(defun c:fas (/ reg ...

这个也配个图,小弟求您了,拜托了
 楼主| 发表于 2012-5-31 19:18:09 | 显示全部楼层
 楼主| 发表于 2012-5-31 19:42:06 | 显示全部楼层
print1985 发表于 2012-5-30 20:03
我来给你贴一段
(defun C:js2 (/ dwmjgl ss n i ent ob mianji gonglv regex)
  (setq regex (vlax-creat ...

(if (setq dwmjgl  (getreal "\n请输入单位面积功率<默认0.08>(kW)"))
           (setq dwmjgl dwmjgl)
           (setq dwmjgl 0.08)
          )
这一段不是太清楚, 能不能讲解一下
发表于 2018-5-10 13:25:15 来自手机 | 显示全部楼层
YAOSHIWEI 发表于 2012-5-31 19:42
(if (setq dwmjgl  (getreal "\n请输入单位面积功率(kW)"))
           (setq dwmjgl dwmjgl)
         ...

如果没有输入 dwmjgl 的值,默认设置为0.08
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-4 06:49 , Processed in 0.129729 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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