正则表达式 – 在单词/ VBA中查找具有多个大写字母的单词
发布时间:2020-12-14 05:48:09 所属栏目:百科 来源:网络整理
导读:我有一段VBA代码使用 Find来查找文档中的所有首字母缩略词.它通过搜索包含2个或更多字符的大写字母组成的所有单词来完成此操作… [A-Z]{2,} 这个问题是它没有拿起所有的首字母缩略词,如CoP,W3C,DVD和CD-ROM.它在两个部分中拾取带连字符的首字母缩略词,这些部
我有一段VBA代码使用
Find来查找文档中的所有首字母缩略词.它通过搜索包含2个或更多字符的大写字母组成的所有单词来完成此操作…
<[A-Z]{2,}> 这个问题是它没有拿起所有的首字母缩略词,如CoP,W3C,DVD和CD-ROM.它在两个部分中拾取带连字符的首字母缩略词,这些部分不理想但允许由用户检查列表.我也可以选择以“s”或其他字符结尾的单词,而不是使用…来搜索单词的结尾. <[A-Z]{2,} 但是这不会将任何非大写字符视为它找到的单词的一部分. 是否有表达式允许我在任何位置搜索具有两个或更多大写字母的单词并找到整个单词? 解决方法
我认为不可能“在任何位置搜索带有两个或更多大写字母的单词并找到整个单词”,除非与宏代码结合使用.既然你正在使用宏,无论如何,这是一种使用以下示例文本对我有用的方法
CoP,this That and AnoTher thing W3C,DVDs and CD-ROM 和这个通配符组合(请注意,我的Windows配置中的列表分隔符是;,对于其他区域a,可能是必需的). <[A-Z][0-9A-Z-a-z]{1;10}> 以下函数检查“found”范围中的第二个或任何后面的字母是否大写,并向调用过程返回一个布尔值.它循环遍历给定Range中的字符,检查ASCII值.一旦找到,循环就会退出. Function ContainsMoreThanOneUpperCase(rng As Word.Range) As Boolean Dim nrChars As Long,i As Long Dim char As String Dim HasUpperCase HasUpperCase = False nrChars = rng.Characters.Count For i = 2 To nrChars char = rng.Characters(i).text If Asc(char) >= 65 And Asc(char) <= 90 Then 'It's an uppercase letter HasUpperCase = True Exit For End If Next ContainsMoreThanOneUpperCase = HasUpperCase End Function 使用它的一个例子: Sub FindAcronyms() Dim rngFind As Word.Range Dim bFound As Boolean Set rngFind = ActiveDocument.content With rngFind.Find .text = "<[A-Z][0-9A-Z-a-z]{1;10}>" .MatchWildcards = True .Forward = True .wrap = wdFindStop bFound = .Execute Do While bFound If bFound And ContainsMoreThanOneUpperCase(rngFind) Then Debug.Print rngFind.text rngFind.HighlightColorIndex = wdBrightGreen End If rngFind.Collapse wdCollapseEnd bFound = .Execute Loop End With End Sub (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 使用Oracle JDBC驱动程序12c的Tomcat 7上的内存泄漏 – ora
- 删除ruby中的子串
- c – 使用boost :: asio :: ip :: tcp :: socket :: cancel
- 设计模式 – DDD聚合与GoF的外观
- c# – ListItemCollection上的隐式类型不可能使用foreach,但
- 解决“No 'Access-Control-Allow-Origin' header i
- OSC 第 110 期高手问答 —— OC & Swift 运行时特性
- c – 如何gtest代码没有调用exit()
- xml 自定义 xsd_ 自己写的
- swift 创建tableView 并实现协议