打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA案例:正则表达式的排除型匹配运用--提取一段文字中所有分句子
左边还是小编之前所用过的《游褒禅山记》中的一段文字。然而小编这次是将这一段文字分解为一个个分句。

每一个分句以标点符号、,。;?分隔开。在[]中,^符号可以用来排除条件。比如[^1-9]、[^a-c]、[^(abc)],其中第一个表示除了数字1至9之外的任意一个字符,而第二个第三个表示除了a至c之外的任意一个字符。

最终效果图如下:

具体代码如下:

Private Sub CommandButton1_Click()Dim re As Object, item, i As Long, arr() '定义re为对象变量,动态数组arr()Set re = CreateObject('vbscript.regexp') '利用后期绑定的方式创建对正则表达式的引用,赋值给变量re With re '利用with-end with语句设置正则表达式的三个属性 .Pattern = '[^(、,。;?)].+?[、,。;?]' '设置pattern属性,确定搜索条件是以除了、,。;?这几个标点符号外的任意一个或多个字符开始,以、,。;?这几个标点符号中的任意一个结尾的字符串。 .ignorecase = True '设置ignorerance属性,值为true表示忽略大小写进行搜索,这里也可以不要这句 .Global = True '设置global属性,值为true表示对目标文本进行全局匹配,这段文字中所有符合搜索条件的都被考虑到 End With If re.test(Range('a1').Text) Then 'test方法检验正则表达式有没有在A1单元格的文本中匹配到pattern中的字符 For Each item In re.Execute(Range('a1').Text) i = i + 1 ReDim Preserve arr(1 To i) '根据集合的元素个数确定i,根据i的变化重新声明动态数组的上界,用以保存正则表达式所提取出来的所有符合条件的字符串 arr(i) = item Next End IfRange('o1').Resize(i, 1) = WorksheetFunction.Transpose(arr) '将数组arr中的数据列排到o列End Sub
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
精通 JavaScript中的正则表达式 - JavaScript
精通JS正则表达式(推荐)
js正则表达式常用函数方法及简单应用
正则表达式及常用用法
JavaScript对象与继承教程之内置对象(下)
Java split方法和正则表达式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服