我做了很多谷歌搜索,以获得如何在VBA中使用或开始使用正则表达式的正确答案。
最后我明白了,所以我想和你们分享我的知识。如果我错了,请纠正我。
答案 0 :(得分:34)
默认情况下,在Word 2007中禁用“正则表达式”选项,以启用该步骤,执行以下步骤,
1)。转到工具>参考文献如下所示。
2)。现在勾选一下#34; Microsoft VBScript Regular Expressions 5.5"选项然后按哦,如下所示。
3)。现在,您可以在VBA脚本中创建一个RegExp对象。您可以验证它是否在对象数据库中搜索,如下所述。 查看>对象浏览器(或按F2),如下所示。
并搜索RegExp对象
4)。 RegExp 对象使用正则表达式来匹配模式。 RegExp 提供以下属性。这些属性设置模式以比较传递给 RegExp 实例的字符串:
a。 模式:定义正则表达式的字符串。
b。 IgnoreCase:一个布尔属性,指示您是否必须针对字符串中的所有可能匹配项测试正则表达式。
c。 全局:设置布尔值或返回一个布尔值,该值指示模式是否必须匹配整体中的所有匹配项搜索字符串,或者模式是否必须仅匹配第一个匹配项。
RegExp 提供以下方法来确定字符串是否与正则表达式的特定模式匹配:
d。 测试:返回一个布尔值,指示正则表达式是否可以成功匹配字符串。
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
我希望它对某些人来说可能有所帮助,因为我浪费了将近半天的时间。
由于