实例需求:对于任意一段文字,按照中文标点符号拆分为数组,并在立即窗口输出。
例如对于如下内容:
本文为博主原创文章,未经博主允许不得转载。访问本人博客123,测试完成
VBE【立即窗口】中输出为:
本文为博主原创文章
未经博主允许不得转载
访问本人博客123
测试完成
示例代码如下:
vb
Sub Demo()
Dim objRegExp As Object, strTxt As String, aTxt, i As Long
Set objRegExp = CreateObject("vbscript.regexp")
objRegExp.Pattern = "[。?!,、;:「」『』''""()〔〕【】---...--.《》〈〉]"
objRegExp.Global = True
objRegExp.IgnoreCase = True
objRegExp.MultiLine = False
strTxt = "本文为博主原创文章,未经博主允许不得转载。访问本人博客123,测试完成"
strTxt = objRegExp.Replace(strTxt, vbTab)
aTxt = Split(strTxt, vbTab)
For i = 0 To UBound(aTxt)
Debug.Print aTxt(i)
Next
End Sub
【代码解析】
第3行代码创建正则对象。
第4行代码设置匹配模式,此处只是包含了常用的中文标点符合,如果输入文本中使用了更多标点,请自行添加。
第5~7行代码设置正则匹配模式。
第8行代码为测试文本。
第9行代码是正则替换,将中文标点符号替换为Tab
,如果输入文本中包含Tab
字符,那么也可以使用其他分界符。
第19行代码使用分界符将替换的文档拆分为数组。
第11~13行代码循环遍历数组,并输出到【立即窗口】中。