
==标题==
|---------------------------|
| 在VB.net中,用正则表达式方法清除干扰符号方法 |
==正文==
上一篇提到通常的word文档复制、粘贴的干扰符号有:chr(7)、chr(11)、chr(13)、chr(9)、chr(160)
在VBA中,提取word表格的文本时,通常有什么干扰符号,需要清除
今天来设计一个函数来清洗它们
一、在VB.NET中使用正则表达式清除Word表格文本中的干扰符号(如Chr(7)
、Chr(13)
、Chr(11)
),可通过以下方法实现:
apache
Imports System.Text.RegularExpressionsFunction CleanTableText(inputText As String) As String Dim pattern As String = "[\x07\x0B\x0D]" ' 匹配Chr(7), Chr(11), Chr(13) Return Regex.Replace(inputText, pattern, String.Empty)End Function
代码说明:
- 正则模式 :
[\x07\x0B\x0D]
使用十六进制表示法匹配:
\x07
→Chr(7)
(单元格结束符)
\x0B
→Chr(11)
(垂直制表符)
\x0D
→Chr(13)
(段落标记)
- 替换逻辑 :
Regex.Replace
将匹配项替换为空字符串,实现批量清除
以上的函数只清洗3个符号,我们还有chr(9)、chr(160)
二、清洗5个干扰符号的增强版本
sql
' 增强版:同时处理不间断空格(Chr(160))和制表符(Chr(9))Function AdvancedClean(inputText As String) As String Dim pattern As String = "[\x07\x0B\x0D]|[\xA0]|\t" Dim cleaned = Regex.Replace(inputText, pattern, Function(m) Return If(m.Value = Chr(160), " ", "") ' 不间断空格转普通空格 End Function) Return cleanedEnd Function
功 能亮点:
- 使用
|
运算符扩展匹配范围
- 通过替换函数区分处理:
- 不间断空格(
C``hr(160)
) → 转为普通空格
- 其他干扰符 → 直接删除
\``t
显式匹配制表符(C``hr(9)
)
三、使用示例:
javascript
Dim rawText As String = "单元格内容" & Chr(7) & "结尾" & Chr(11) & "多行" & Chr(13) & "文本"Dim cleanText As String = CleanTableText(rawText)' 输出结果: "单元格内容结尾多行文本"
四、关键注意事项
-
命名空间必需:确保已导入 System.Text.RegularExpressions
-
Unicode处理:VB.NET正则默认支持Unicode字符(如中文)
==The end==

==合集==
====若有用,请转发免费学习====
关注看更多文章