我如何编写一个条件来比较Recipient.AdressEntry,例如以下字符串" I351"使用RegEx?
这是我的If条件,但是硬编码到每个已知的电子邮件地址。
For Each recip In recips
If recip.AddressEntry = "Dov John, I351" Then
objMsg.To = "example@mail.domain"
objMsg.CC = recip.Address
objMsg.Subject = Msg.Subject
objMsg.Body = Msg.Body
objMsg.Send
End If
Next
我需要这种情况的原因是电子邮件可能包含我团队中的几位同事和另一位团队中的一位或多位同事。我的同事的AdressEntry以I351结束,所以我将检查这封电子邮件是否包含我的一个队友。
For Each recip In recips
If (recip.AddressEntry = "Dov John, I351" _
Or recip.AddressEntry = "Vod Nohj, I351") Then
objMsg.To = "example@mail.domain"
objMsg.CC = recip.Address
objMsg.Subject = Msg.Subject
objMsg.Body = Msg.Body
objMsg.Send
End If
Next
答案 0 :(得分:0)
您仍然没有明确说明 您想要用于匹配的条件是什么,所以我会尽我所能:
如果您只是想检查字符串是否以" I351"结束,您不需要正则表达式,您可以使用以下内容:
If recip.AddressEntry Like "*I351" Then
' ...
End If
如果要检查字符串是否遵循此格式"LastName FirstName, I351"
,可以使用以下内容使用Regex实现此目的:
Dim regEx As New RegExp
regEx.Pattern = "^\w+\s\w+,\sI351$"
If regEx.Test(recip.AddressEntry) Then
' ...
End If
正则表达式模式的说明:
' ^ Asserts position at the start of the string.
' \w Matches any word character.
' + Matches between one and unlimited times.
' \s Matches a whitespace character.
' \w+ Same as above.
' , Matches the character `,` literally.
' \s Matches a whitespace character.
' I351 Matches the string `I351` literally.
' $ Asserts position at the end of the string.
希望有所帮助。