用正则表达式VB.Net发送邮件

我正在VB.Net的一个小项目中从一个文本框获得输入,并且需要验证这是一个电子邮件地址。

我发现这个表达式“^ [_ a-z0-9 - ] +(。[_ a-z0-9 - ] +)@ [a-z0-9 - ] +(。[a-z0-9 - ] +)( 。[az] {2,4})$“,但我无法找到任何方式来测试它是否通过。

我想要一些代码,如:

if not txtEmail.text = regexString then
    something happens..
else
    something else happens..
end if

使用System.Text.RegularExpressions.Regex类:

Function IsEmail(Byval email as string) as boolean
    Static emailExpression As New Regex("^[_a-z0-9-]+(.[a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$")

    return emailExpression.IsMatch(email)
End Function

了解这个答案最重要的是我没有自己写正则表达式。 有太多错误的方法似乎是正确的,并且有几个层次的细节可供您使用。 例如,您是否想限制为有效的顶级域名?如果是,您如何解释他们现在偶尔添加新的TLD? 如果正则表达式是最适合该测试的地方,还是应该有单独的代码进行检查? 即使这个答案中的表达现在是非常陈旧的,因为它最初是作者创作的。 我推荐的是找到一个资源,您可以使用它来维护您知道的表达式。


从我的文章中选择您最喜欢的正则表达式,用正则表达式匹配电子邮件地址,并将其插入此Visual Basic代码中:

If Regex.IsMatch(SubjectString, "regex") Then
    Error = False
Else
    Error = True
End If

匹配电子邮件地址的最佳正则表达式是一个有争议的话题,我不想在此处介绍。 我的文章讨论了在选择正则表达式时应该注意的问题。 Joel Coehoorn的回答中的正则表达式绝对不是一个好的表达式。


有这样一个伟大的网站,http://regexlib.com/。 它不仅有一个测试应用程序,您可以在其中粘贴正则表达式并对其进行测试,但也有一个正则表达式库,可用于社区对其有效性的反馈等。我不是正则表达式大师,所以当我需要一个快速的正则表达式时,我会去这里。

此外,如果您正在考虑自己开发正则表达式,那么有一款名为Regex Buddy的优秀工具,它允许您使用易于理解的正则表达式的英语解释来即时创建和测试正则表达式。

链接地址: http://www.djcxy.com/p/92817.html

上一篇: mail with regular expression VB.Net

下一篇: Worldwide email validation