乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 6|回复: 5

[编程交流] 查找并替换问题

[复制链接]

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 15:20:25 | 显示全部楼层 |阅读模式
大家好,当使用find命令时,有没有一种方法(我假设有并且我遗漏了一些东西)可以执行以下操作。
 
假设我有一张满是数字的图,具体来说是线号,沿着这些线:
 
XXYYZ公司
其中XX是页面,YY是行号,z是导线(通过触点或开关等)更改的次数。
 
如果我复制了一个现有的图纸并进行了复制,或者只是需要更改图纸编号,我们需要完成替换所有这些导线中页码的过程。到目前为止,find and replace做得很好,但存在一些问题:
 
第一个问题是,如果我有一个在第30页第30行的图纸,那一行的第一个线号将是“30300”。如果我想将该图纸编号从30更改为40,并进行查找和替换,则以前的线号将变为40400,而不是40300。我有没有办法只替换40的第一个实例?
我想要的输出是将“30300”更改为“40300”
 
另一个问题是,如果我的线号是“33050”(第33页,第05行,导线0),它来自另一个图形,找到并替换它将更改为“34050”。
 
有没有一种方法可以将搜索限制为只返回起始字符串为“30”的值,而忽略“33050”之类的情况?
 
这只是一个基本的例子,它们变得更加复杂和复杂,但我认为如果这些都能做到,我会让我的生活更轻松。
 
感谢所有能够提供帮助的人。
抱歉,如果这有点长,但我不想混淆任何人。
 
P、 对于高级用户:我只在需要为客户修改的旧图纸上使用。
对于新的图形,我创建了一系列动态块,并结合我用于避免此问题的字段。目前,我使用了一个diesel表达式,它从DWG文件名中获取图纸编号(它始终位于同一位置,“.DWG”之前的最后2个数字),并使用该表达式。我很高兴听到任何人的想法,使这更简单或改善它。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 15:40:09 | 显示全部楼层
由于查找和替换是一个全局样式例程,因此您需要一个自定义例程,该例程具有内置的规则,用于查找特定的文本模式并对其进行更改。在lisp中,可以使用substr函数。这是一个非常简单的示例,不是代码。
 
  1. (setq str "30300")
  2. (substr str 1 2 ) = 30
  3. (strcat "new" (substr str 3)) = new300

 
搜索更改前缀。
回复

使用道具 举报

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 15:54:35 | 显示全部楼层
非常有趣。。。甚至没有想过使用lisp例程来实现这个。。。
 
谢谢
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 15:57:14 | 显示全部楼层
我已经将您的帖子转移到AutoLISP、Visual LISP和DCL论坛。
回复

使用道具 举报

0

主题

946

帖子

978

银币

限制会员

铜币
-3
发表于 2022-7-5 16:10:13 | 显示全部楼层
 
要使用Find和Replace Find 303 Replace 403将30300更改为40300,否则将在同一字符串中查找30两次
回复

使用道具 举报

0

主题

946

帖子

978

银币

限制会员

铜币
-3
发表于 2022-7-5 16:21:37 | 显示全部楼层
 
还有这个http://www.lee-mac.com/bfind.html
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 13:06 , Processed in 2.133219 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表