我需要使用RegEx从电子邮件正文中提取文本。我使用Outlook 2010和MS VBScript 5.5正则表达式引擎。我试图提取的文字是:
MessageID :1079247881
InstrumentID :DS5431460001
到目前为止,我已经提出了:
MessageID\s*\:(\d+)\n
InstrumentID\s+\:([a-z]{2}\d+)\n
两者现在都在运作。以下是我的测试:
最终,我想突出显示一条特定的消息并运行我的代码。然后,它将从该消息中提取这两个项目并将它们放入模板供我发送。我在那方面做得很好。我只需要RegExs的帮助。
答案 0 :(得分:1)
如果你想使用一个正则表达式,你可以这样做:
(?:Message|Instrument)ID\s+:(\w+)
我不熟悉VB及其正则表达式实现,但似乎你可以做这样的事情(改编并借用here)。
Function TestRegExp(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 = "(?:message|instrument)ID\s+:(\w+)"
' 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.
If (objRegExp.Test(myString) = True) Then
'Get the matches.
Set colMatches = objRegExp.Execute(myString) ' Execute search.
For Each objMatch In colMatches ' Iterate Matches collection.
MsgBox objMatch.SubMatches(0)
Next
End If
End Function