- 积分
- 3542
- 明经币
- 个
- 注册时间
- 2004-1-12
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2007-11-15 16:28:00
|
显示全部楼层
本帖最后由 作者 于 2007-11-15 16:32:18 编辑
附上VBA代码- 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
|
|