批量删除某一关键字前面的文字
本帖最后由 jcmtxgt 于 2024-11-5 15:09 编辑图档的编号比较多,有时要删除某一些文字的前面部分,请高手帮忙,编一个,可以输入任意关键字,将该关键字前面的内容全部删除。,比如图片上面的,批量将“J'前面的文字删除,后面的要保留。
执行命令,输入关键字,框选要操作的文字,确定,删除。
本帖最后由 韩飞翔 于 2024-11-5 17:50 编辑
试试这个,是不是想要的 没说明白,大侠们没兴趣猜
是多行文字还是单行,前面和后面字符串是分开文字还是一个文字,都没有说清
或者你直接上传dwg文件最直接 表述得不够详细。是单行文字来的,每一行就是一个图档的编号,图片上是六个编号。每一行的前面和后面字符串是一起的。需要利用这六个编号的相同关键字,删除每一个编号的前面部分 试一下:
多谢你的帮忙,请再改一下。要实现这样的操作:1.执行命令,可以输入任意关键字,比如我上面图片上的“j",就把前面部分删除了,后面部分要保留。2,框选中所有单行文字,程序会删除关键字前面的文字
只针对图片的文本样式,再试一试。
(defun c:t2 ( / wb ss n eName obj nr)
(vl-load-com)
(setq wb (getstring "\n输入关键字:"))
(setq ss (ssget(list '(0 . "TEXT")(cons 1(strcat "*" wb "*")) ) ))
(if SS
(repeat (setq n (sslength ss))
(setq ename (ssname ss (setq n (1- n))))
(setq obj (vlax-ename->vla-object ename))
(setq nr (vlax-get obj 'textstring))
;(setq nr(NBTF_RegExP"(?=JR)JR+" nr "g"))
(setq nr(NBTF_RegExP(strcat "(?=" wb ")" wb "* ** ** *[\\u4e00-\\u9fa5]*" ) nr "g"))
(vlax-put obj 'textstring (car nr))
)
);if
(princ)
) 看7#回答,是否是需要的 本帖最后由 jcmtxgt 于 2024-11-5 19:32 编辑
韩飞翔 发表于 2024-11-5 17:26
试试这个,是不是想要的正是所要,测试了多次,感谢帮忙
xiang19751218 发表于 2024-11-5 17:23
只针对图片的文本样式,再试一试。
(defun c:t2 ( / wb ss n eName obj nr)
(vl-load-com)
执行的时候没有反应,选不到字
页:
[1]
2