明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3640|回复: 14

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

  [复制链接]
发表于 2012-5-30 08:47:00 | 显示全部楼层 |阅读模式
高手能不能举几个有关正则表达式在和lisp的简单应用,最好是实例,求助,在网上找了半天没有找到,几个小例子
发表于 2018-5-10 13:25:15 来自手机 | 显示全部楼层
YAOSHIWEI 发表于 2012-5-31 19:42
(if (setq dwmjgl  (getreal "\n请输入单位面积功率(kW)"))
           (setq dwmjgl dwmjgl)
         ...

如果没有输入 dwmjgl 的值,默认设置为0.08
发表于 2012-5-30 10:06:10 | 显示全部楼层
正则表达式在LISP中的使用,在论坛里已经有不少的例子了,你可以使用论坛的搜索功能,搜索“正则”。
发表于 2012-5-30 14:28:42 | 显示全部楼层
你可以看看无痕大虾的“一刀屠文”就清楚了
发表于 2012-5-30 20:03:09 | 显示全部楼层
本帖最后由 print1985 于 2012-5-30 20:06 编辑

我来给你贴一段
(defun C:js2 (/ dwmjgl ss n i ent ob mianji gonglv regex)
  (setq regex (vlax-create-object "Vbscript.RegExp"));引用正则表达式控件
  (vlax-put-property regex "IgnoreCase" 0); 不忽略大小写
  (vlax-put-property regex "Global" 1);全文匹配,而不是只匹配第一处
  (if (setq dwmjgl  (getreal "\n请输入单位面积功率<默认0.08>(kW)"))
          (setq dwmjgl dwmjgl)
          (setq dwmjgl 0.08)
         )
  (if (setq ss (ssget '((0 . "TEXT"))))
  (progn
  (setq n (sslength ss))
  (setq i (- n 1))
  (repeat n
        (setq ent (ssname ss i)) ;图元名称
        (setq ob (vlax-ename->vla-object ent));转换
        (setq mianji (cdr (assoc 1 (entget ent)))) ;门市面积
        (vlax-put-property regex "Pattern" "[^0-9\\.]");正则表达式,提取0~9和.
        (setq mianji (atof (vlax-invoke-method  regex "Replace" mianji "")));提取对象为mianji字符串
        (setq gonglv (rtos (* mianji dwmjgl) 2 1));将面积换算为功率
        (vlax-put-property ob 'TextString gonglv) ;改变特性
        (setq i (1- i))
  )
))
(princ)
)
 楼主| 发表于 2012-5-30 20:04:26 | 显示全部楼层
那个比较乱,看不懂得,我已经晓得每个字符意思了,但不知道具体如何应用,明总讲的那几个太深了,明总能不能讲几个比较简单的,求助
发表于 2012-5-30 20:08:40 | 显示全部楼层
  关键几句就是
(setq regex (vlax-create-object "Vbscript.RegExp"));引用正则表达式控件
(vlax-put-property regex "IgnoreCase" 0); 不忽略大小写
(vlax-put-property regex "Global" 1);全文匹配,而不是只匹配第一处

(vlax-put-property regex "Pattern" "[^0-9\\.]");正则表达式,提取0~9和.
(setq mianji (atof (vlax-invoke-method  regex "Replace" mianji "")));提取对象为mianji字符串
发表于 2012-5-30 20:14:27 | 显示全部楼层
好深啊,俺没学过呢,看不懂,得好好学习才行
发表于 2012-5-30 20:14:47 | 显示全部楼层
想问一下什么叫正则运算????
发表于 2012-5-30 20:17:38 | 显示全部楼层
YAOSHIWEI 发表于 2012-5-30 20:06
大哥,你那个具体是怎么用的,


本帖子中包含更多资源

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

x
 楼主| 发表于 2012-5-30 20:18:18 | 显示全部楼层
print1985 发表于 2012-5-30 20:03
我来给你贴一段
(defun C:js2 (/ dwmjgl ss n i ent ob mianji gonglv regex)
  (setq regex (vlax-creat ...

大兄弟,这个具体是怎么用的,谢谢,能干什么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 03:02 , Processed in 0.177164 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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