ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何用VBA正则表达式提取所有的英文单词?

如何用VBA正则表达式提取所有的英文单词?

作者:绿色风 分类: 时间:2022-08-17 浏览:132
楼主
wise
Q:如何用VBA正则表达式提取所有的英文单词?
A:ALT+F11→插入模块→在模块中输入以下代码:
  1. Sub 提取所有的英文单词()
  2. Dim str As String, i As Integer
  3. Set reg = CreateObject("vbscript.regexp")
  4. Dim matcher As Object
  5.     '搜索所有匹配的
  6.      reg.Global = True
  7.        '不区分大小写
  8.     reg.ignorecase = True
  9.     str = "wise biaotiger 鸭鸭 amulee rose  兔子"
  10.      '\b匹配一个字边界,即字与空格间的位置。例如,“er\b”匹配“never”中的“er”,但不匹配“verb”中的“er”;w+:匹配一个或多个任何字类字符,包括下划线,与“[A-Za-z0-9_]”等效;\b又是限定边界
  11.     reg.Pattern = "\b\w+\b"
  12.     '使用Execute方法
  13.     Set matcher = reg.Execute(str)
  14.      '循环匹配对象的总数
  15.         For i = 0 To matcher.Count - 1
  16.         '返回对象的索引,即符合条件的数
  17.            Debug.Print matcher.Item(i)
  18.           ' Cells(i + 1, 1) = matcher.Item(i)
  19.         Next i
  20. End Sub
2楼
水星钓鱼
Q:如何用正则表达式提取字符串中的英文单词?
A:利用RegExp对象的Execute方法构造搜索到的英文单词的集合,然后逐个列出。
  1. Sub RegExp()
  2.     Dim match As Object
  3.     Dim reg As Object
  4.     Dim test As String
  5.     Set reg = CreateObject("VBScript.RegExp")
  6.     test = "apple big 中文社区 kevin rose Exceltip"
  7.     With reg
  8.         .Global = True
  9.         .Pattern = "[a-zA-Z]+"
  10.         For Each match In .Execute(test)
  11.             MsgBox match
  12.         Next
  13.     End With
  14. End Sub
3楼
bluexuemei
学习!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap