电子邮件地址的Microsoft Word正则表达式
问题描述:
我需要为电子邮件地址创建正则表达式,该电子邮件地址将与Microsoft Word的查找和替换一起使用。我不是想要得到任何复杂的正则表达式,只是一个简单的正则表达式。电子邮件地址的Microsoft Word正则表达式
我在网上发现了很多正则表达式,但Word不允许使用carrets。
答
这里是一个piece of VBA macro,你可以检查:
Option Explicit
Const MODULE_NAME As String = "modMail"
Public Function ValidateEmailAddress(ByVal strEmailAddress As String) As Boolean
On Error GoTo Catch
Dim objRegExp As New RegExp
Dim blnIsValidEmail As Boolean
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "^([a-zA-Z0-9_\-\.]+)@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"
blnIsValidEmail = objRegExp.Test(strEmailAddress)
ValidateEmailAddress = blnIsValidEmail
Exit Function
Catch:
ValidateEmailAddress = False
MsgBox "Module: " & MODULE_NAME & " - ValidateEmailAddress function" & vbCrLf & vbCrLf _
& "Error#: " & Err.Number & vbCrLf & vbCrLf & Err.Description
End Function