gpt4 book ai didi

regex - 如何在word中使用VBA(宏)使用/启用(RegExp对象)正则表达式

转载 作者:行者123 更新时间:2023-12-03 03:11:19 26 4
gpt4 key购买 nike

我进行了大量的谷歌搜索,以获得有关如何在 VBA 中使用或开始使用正则表达式的正确答案。

终于明白了,所以我想与大家分享我的知识。如果我错了,请纠正我。

最佳答案

默认情况下,Word 2007 中禁用正则表达式选项,要启用该选项,请执行以下步骤,

1).转到“工具”>“引用”,如下所示。 enter image description here

2).现在勾选“Microsoft VBScript Regular Expressions 5.5”选项,然后按 oh,如下所示。 enter image description here

3).现在您可以在 VBA 脚本中创建 RegExp 对象。您可以验证它是否在对象数据库中搜索,如下所述。查看>对象浏览器(或按F2),如下所示。

enter image description here

并搜索 RegExp 对象

enter image description here

4).RegExp 对象使用正则表达式来匹配模式。以下属性由 RegExp 提供。这些属性设置模式以比较传递给 RegExp 实例的字符串:

a. 模式:定义正则表达式的字符串。

b. IgnoreCase:一个 bool 属性,指示是否必须针对字符串中所有可能的匹配项测试正则表达式。

c. 全局: 设置一个 bool 值或返回一个 bool 值,指示模式是否必须匹配整体中的所有出现情况搜索字符串,或者模式是否必须仅匹配第一次出现的情况。

RegExp提供了以下方法来确定字符串是否与正则表达式的特定模式匹配:

d. 测试:返回一个 bool 值,指示正则表达式是否可以成功匹配字符串。

e. 执行:返回一个 MatchCollection 对象,其中包含每个成功匹配的 Match 对象。

请在 Microsoft msdn 论坛中查找提供的 RexExp 类似示例。

Function TestRegExp(myPattern As String, myString As String)
'Create objects.
Dim objRegExp As RegExp
Dim objMatch As Match
Dim colMatches As MatchCollection
Dim RetStr As String

' Create a regular expression object.
Set objRegExp = New RegExp

'Set the pattern by using the Pattern property.
objRegExp.Pattern = myPattern

' Set Case Insensitivity.
objRegExp.IgnoreCase = True

'Set global applicability.
objRegExp.Global = True

'Test whether the String can be compared.
If (objRegExp.Test(myString) = True) Then

'Get the matches.
Set colMatches = objRegExp.Execute(myString) ' Execute search.

For Each objMatch In colMatches ' Iterate Matches collection.
RetStr = RetStr & "Match found at position "
RetStr = RetStr & objMatch.FirstIndex & ". Match Value is '"
RetStr = RetStr & objMatch.Value & "'." & vbCrLf
Next
Else
RetStr = "String Matching Failed"
End If
TestRegExp = RetStr
End Function

我希望它可以对某些人有所帮助,因为我在上面浪费了几乎半天的时间。

谢谢

关于regex - 如何在word中使用VBA(宏)使用/启用(RegExp对象)正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25102372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com