明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3126|回复: 15

大家进来看 一下,使用正则替换文字出现问题

[复制链接]
发表于 2012-6-5 21:19:43 | 显示全部楼层 |阅读模式
(vl-load-com)
   (setq mtext(vlax-ename->vla-object(car(entsel "\n选择多行文字:"))));转换为VLA对象
          (if  (=(vla-get-objectname mtext) "AcDbMText")
    (progn
      (setq regex(vlax-create-object "Vbscript.RegExp"));引用正则表达式控件
      (vlax-put-property regex "IgnoreCase" 0); 不忽略大小写
      (vlax-put-property regex "Global" 1);全文匹配,而不是只匹配第一处
        (setq s (vla-get-textstring mtext))      
         (setq B \\C1中)似乎无法解决在正则表达式中的嵌套问题
        (vlax-put-property regex "Pattern" "中")

        (setq s(vlax-invoke-method  regex "Replace" s "{b}"))为什么不能使用B代替\\C1,不是已经贱值了吗
        (vla-put-textstring mtext s)                              ;不要有括号,否则会直接加上括号,但如何使用只改变一个字呢
                                                                 ;如果要是单字的话要使用大括号\如果字体已经有颜色、字体呢
        (vlax-release-object regex))
   (progn
          (alert "选择的不是多行文字,请重新选择")

     ))
 楼主| 发表于 2012-6-5 21:23:27 | 显示全部楼层
我准备把“中”字替换成红色的,但我把\\C中赋给了B就不行,请问这是为什么
 楼主| 发表于 2012-6-5 21:24:12 | 显示全部楼层
我准备把“中”字替换成红色的,但我把\\C中赋给了B就不行,请问这是为什么
发表于 2012-6-5 21:49:49 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2012-6-5 21:50 编辑

别总挂着“正则”,“正则”与替换无关。
发表于 2012-6-6 09:59:56 | 显示全部楼层
我有点不理解啊
发表于 2012-6-6 11:10:37 | 显示全部楼层
还不会用正则,等高人来解答,再学习一下!
发表于 2012-6-6 16:31:51 | 显示全部楼层
不清楚,做等高手来吧,呵呵
发表于 2012-6-6 16:44:19 | 显示全部楼层
本帖最后由 crazylsp 于 2012-6-6 16:47 编辑

{B} 是匹配次数吧,例如A{2}是匹配范围中有两个A的字符。猜测楼主想的是要保存匹配结果 vlax-invoke-method  regex "Replace" s "{b}"说的是  {b}改成 "$B",表示引用第B个匹配结果保存。
 楼主| 发表于 2012-6-6 20:24:37 | 显示全部楼层
ZZXXQQ 发表于 2012-6-5 21:49
别总挂着“正则”,“正则”与替换无关。

这个用来练习 的
 楼主| 发表于 2012-6-6 20:36:08 | 显示全部楼层
不是,我用正则来替换颜色,我准备把“中”字替换成红色,的应用"\\C中",然后把“\\C中”赋值给B,然后用vlax-put-property regex "Pattern" "中")
(SETQ B  \\C中)
         (setq s(vlax-invoke-method  regex "Replace" s "{B}"))可以无法改颜色,我使用的是格式代码,反而把“中”替换成了“B”
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-26 03:12 , Processed in 0.169816 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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