找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1900|回复: 7

[求助] 通配符查找替换文字

[复制链接]

已领礼包: 312个

财富等级: 日进斗金

发表于 2016-11-19 22:29:23 | 显示全部楼层 |阅读模式

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

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

×
查找替换文字的lsp程序不少,cad本身的查找替换功能也够用。但是不能实现按通配符查找,有没有类似的lisp程序实现通配符查找替换文字?或者能不能提供算法或者思路?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-11-19 22:40:03 | 显示全部楼层
1、先搜索论坛,看看以前的帖子。
2、你举几个查找替换的例子。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 312个

财富等级: 日进斗金

 楼主| 发表于 2016-11-19 23:12:52 | 显示全部楼层
本帖最后由 cq_qg68 于 2016-11-19 23:16 编辑

不好意思,可能我太着急,没有仔细搜索查找到相关内容。
就是类似word那样的通配符查找替换功能。比如*号代表任意字符,?代表一个字符。
今天我就有一个要用到通配符的情况:有很多图号,例如ZC-桥-施-01-钢筋图、ZC-桥-施-02-构造图、……类似的图号。前面字符“ZC-桥-施-”相同,后面的序号变化。序号之后的文字内容也不同。但是序号前面的字符个数是一样的。现在要修改成这样:在序号后面增加一字符G1,改成:ZC-桥-施-01-G1-钢筋图、ZC-桥-施-02-G1-构造图、……
我就想能不能用通配符这么查找替换:ZC-桥-施-??-改成ZC-桥-施-??-G1,其中问号就代表一个字符。序号不一样,序号后的文字内容也不一样。这个可能情况稍微特殊一点,因为前面的字符长度一样,能够在指定长度字符串处插入一个字符。我想最一劳永逸的办法就是能实现通配符查找替换。
不知道我的意思说明白了没有,在论坛有我还没有查到相关的资料,烦请出手相助。看能不能编个lisp程序,多谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-11-19 23:40:33 | 显示全部楼层
本帖最后由 newer 于 2016-11-19 23:43 编辑

文字处理的,就把正则表达式弄明白就一切都解决了, 用  正则表达式 搜索论坛,看看介绍。

开源函数库的 xd::string:regexps (正则查找), xd::string:RegExpR (正则替换)

拿你的例子

(defun c:tt ()
  (setq a (list "ZC-桥-施-02-构造图" "ZC-桥-施-01-钢筋图"))
  (setq match "施-[0-9]+-")
  (mapcar '(lambda (x)
             (if (setq str (car (xd::string:RegexpS match x "")))
               (xd::string:RegexpR match x (strcat str "G1-") "")
             )
           )
          a
  )
)


上面的匹配字符串 "施-[0-9]+-", 意思就是查找 中间 是多个数字 前面是"施-" 后面是 "-"的字符串。 [0-9]+ 正则表达式表示的是多个数字连在一起。


测试下,替换 "ZC-桥-施-02-构造图" "ZC-桥-施-01-钢筋图" 这两个字符串。


命令: tt
("ZC-桥-施-02-G1-构造图" "ZC-桥-施-01-G1-钢筋图")

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

使用道具 举报

已领礼包: 6476个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 8727个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 3186个

财富等级: 富可敌国

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

使用道具 举报

已领礼包: 312个

财富等级: 日进斗金

 楼主| 发表于 2016-11-20 16:13:00 | 显示全部楼层
谢谢,看来要好好学习下正则表达式了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 00:15 , Processed in 0.225516 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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