明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: mccad

在VLISP中使用正则表达式(一)取多行文字中的有用内容

  [复制链接]
发表于 2007-1-17 12:37 | 显示全部楼层

很好使,谢谢楼主帮忙

小弟会更加努力学习的,有一天也能帮助一下别人是我努力的目标。呵呵

发表于 2007-1-17 13:09 | 显示全部楼层

mccad:

请问怎么在autocad R2004下运行怎么无任何动作?

发表于 2007-2-23 22:33 | 显示全部楼层
??
发表于 2007-4-21 13:25 | 显示全部楼层
版主,可否按照特定的特征进行提取字串而非替换呢?也即不用replace方法,只是复制出来特征字串的方法是何,请指点一下。谢谢。
发表于 2007-11-15 16:21 | 显示全部楼层
mccad,这个好像不行啊

本帖子中包含更多资源

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

x
发表于 2007-11-15 16:28 | 显示全部楼层

Public Function Mtext2text(MyString As String) As String
    Dim objRegExp As New RegExp
    Dim objMatch As Match
    Dim colMatches As MatchCollection
    Dim RetStr As String
    objRegExp.IgnoreCase = False       ' 如果设为True, 则当指定[a-z],或[A-Z]时,将不会区分大小写判断。
    objRegExp.Global = True
   
    '替换\\字符
    objRegExp.Pattern = "\\\\\\\\"
    MyString = objRegExp.Replace(MyString, Chr(1))
    '替换\{字符
    objRegExp.Pattern = "\\\\{"
    MyString = objRegExp.Replace(MyString, Chr(2))
    '替换\}字符
    objRegExp.Pattern = "\\\\}"
    MyString = objRegExp.Replace(MyString, Chr(3))
    '删除段落缩进格式
    objRegExp.Pattern = "\\\\pi(.[^;]*);"
    MyString = objRegExp.Replace(MyString, "")
    '删除制表符格式
    objRegExp.Pattern = "\\\\pt(.[^;]*);"
    MyString = objRegExp.Replace(MyString, "")
    '删除堆迭格式
    objRegExp.Pattern = "\\\\S(.[^;]*)(\\^|#|\\\\)(.[^;]*);"
    MyString = objRegExp.Replace(MyString, "")
    '删除字体、颜色、字高、字距、倾斜、字宽、对齐格式
    objRegExp.Pattern = "(\\\\F|\\\\f|\\\\C|\\\\H|\\\\\T|\\\\Q|\\\\W|\\\\A)(.[^;]*);"
    MyString = objRegExp.Replace(MyString, "")
    '删除下划线、删除线格式
    objRegExp.Pattern = "(\\\\L|\\\\O|\\\\l|\\\\o)"
    MyString = objRegExp.Replace(MyString, "")
    '删除不间断空格格式
    objRegExp.Pattern = "\\\\~"
    MyString = objRegExp.Replace(MyString, "")
    '删除换行符格式
    objRegExp.Pattern = "\\\\P"
    MyString = objRegExp.Replace(MyString, "")
    '删除换行符格式(针对Shift+Enter格式)
    objRegExp.Pattern = "\n"
    MyString = objRegExp.Replace(MyString, "")
    '删除{}
    objRegExp.Pattern = "({|})"
    MyString = objRegExp.Replace(MyString, "")
   
    '替换回\\,\{,\}字符
    objRegExp.Pattern = Chr(1)
    MyString = objRegExp.Replace(MyString, "\\")
    objRegExp.Pattern = Chr(2)
    MyString = objRegExp.Replace(MyString, "{")
    objRegExp.Pattern = Chr(3)
    MyString = objRegExp.Replace(MyString, "}")
   
    Mtext2text = MyString
End Function
发表于 2007-11-15 16:28 | 显示全部楼层
本帖最后由 作者 于 2007-11-15 16:32:18 编辑

附上VBA代码
  1. Public Function Mtext2text(MyString As String) As String
  2.     Dim objRegExp As New RegExp
  3.     Dim objMatch As Match
  4.     Dim colMatches As MatchCollection
  5.     Dim RetStr As String
  6.     objRegExp.IgnoreCase = False       ' 如果设为True, 则当指定[a-z],或[A-Z]时,将不会区分大小写判断。
  7.     objRegExp.Global = True
  8.    
  9.     '替换\\字符
  10.     objRegExp.Pattern = "\\\\\\\"
  11.     MyString = objRegExp.Replace(MyString, Chr(1))
  12.     '替换\{字符
  13.     objRegExp.Pattern = "\\\\{"
  14.     MyString = objRegExp.Replace(MyString, Chr(2))
  15.     '替换\}字符
  16.     objRegExp.Pattern = "\\\\}"
  17.     MyString = objRegExp.Replace(MyString, Chr(3))
  18.     '删除段落缩进格式
  19.     objRegExp.Pattern = "\\\\pi(.[^;]*);"
  20.     MyString = objRegExp.Replace(MyString, "")
  21.     '删除制表符格式
  22.     objRegExp.Pattern = "\\\\pt(.[^;]*);"
  23.     MyString = objRegExp.Replace(MyString, "")
  24.     '删除堆迭格式
  25.     objRegExp.Pattern = "\\\\S(.[^;]*)(\\^|#|\\\\)(.[^;]*);"
  26.     MyString = objRegExp.Replace(MyString, "")
  27.     '删除字体、颜色、字高、字距、倾斜、字宽、对齐格式
  28.     objRegExp.Pattern = "(\\\\F|\\\\f|\\\\C|\\\\H|\\\\\T|\\\\Q|\\\\W|\\\\A)(.[^;]*);"
  29.     MyString = objRegExp.Replace(MyString, "")
  30.     '删除下划线、删除线格式
  31.     objRegExp.Pattern = "(\\\\L|\\\\O|\\\\l|\\\\o)"
  32.     MyString = objRegExp.Replace(MyString, "")
  33.     '删除不间断空格格式
  34.     objRegExp.Pattern = "\\\\~"
  35.     MyString = objRegExp.Replace(MyString, "")
  36.     '删除换行符格式
  37.     objRegExp.Pattern = "\\\\P"
  38.     MyString = objRegExp.Replace(MyString, "")
  39.     '删除换行符格式(针对Shift+Enter格式)
  40.     objRegExp.Pattern = "\n"
  41.     MyString = objRegExp.Replace(MyString, "")
  42.     '删除{}
  43.     objRegExp.Pattern = "({|})"
  44.     MyString = objRegExp.Replace(MyString, "")
  45.    
  46.     '替换回\\,\{,\}字符
  47.     objRegExp.Pattern = Chr(1)
  48.     MyString = objRegExp.Replace(MyString, "\")
  49.     objRegExp.Pattern = Chr(2)
  50.     MyString = objRegExp.Replace(MyString, "{")
  51.     objRegExp.Pattern = Chr(3)
  52.     MyString = objRegExp.Replace(MyString, "}")
  53.    
  54.     Mtext2text = MyString
  55. End Function
发表于 2007-11-16 08:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2007-11-16 10:49 | 显示全部楼层
明经高手多到数不清,我也有个想大家帮编的,不知有高手帮下菜人吗?
发表于 2007-11-16 19:58 | 显示全部楼层
助淫为乐发表于2007-11-16 8:42:00用WCMATCH配合通配符进行替换不也一样?

不一样,试试看就知道了。你要能用WCMATCH配合通配符 写一个出来,我给你加分

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

本版积分规则

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

GMT+8, 2024-5-17 16:55 , Processed in 0.193019 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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