C# 如何使用RegEx确保在我的文本框中写入有效的电子邮件>;?

C# 如何使用RegEx确保在我的文本框中写入有效的电子邮件>;?,c#,regex,winforms,formatting,C#,Regex,Winforms,Formatting,我对RegEx是一个完全的新手,我相信一旦我知道如何使用它,使用它会非常棒P 我有几个文本框,我想知道是否有人能帮我完成我需要的 在电子邮件文本框中,我想确认用户写的电子邮件是否有效。xxx@yyy.zzz RegEx有办法帮我吗 我还想找到一种方法来格式化用户写下的名字。因此,如果用户在“SerGIo TAPIA Gutierrez”中写入,我想将该字符串格式化(在保存之前在幕后)为“SerGIo TAPIA Gutierrez”,RegEx可以这样做吗 非常感谢 (inb4-Rex:p)一个

我对RegEx是一个完全的新手,我相信一旦我知道如何使用它,使用它会非常棒P

我有几个文本框,我想知道是否有人能帮我完成我需要的

在电子邮件文本框中,我想确认用户写的电子邮件是否有效。xxx@yyy.zzz RegEx有办法帮我吗

我还想找到一种方法来格式化用户写下的名字。因此,如果用户在“SerGIo TAPIA Gutierrez”中写入,我想将该字符串格式化(在保存之前在幕后)为“SerGIo TAPIA Gutierrez”,RegEx可以这样做吗

非常感谢


(inb4-Rex:p)

一个完整而准确的电子邮件验证正则表达式是非常困难的,我相信你可以使用谷歌找到一些例子


电子邮件验证的一般规则是实际发送电子邮件。

完整准确的电子邮件验证正则表达式非常困难,我相信您可以使用谷歌找到一些示例

电子邮件验证的一般规则是实际尝试发送电子邮件。

public bool TestEmailRegex(字符串emailAddress)
{
//字符串模式长度=@“\w+([-+.]\w+*@\w+([-.]\w+*\)。\w+([-.]\w+*”;
//Regex relient=新的Regex(patternLenient);
字符串模式strict=@“^([^()[\]\\,;:\s@”“]+”
+@“(\.[^()[\]\\,;:\s@”“]+)*)|(.+)@”
+ @"((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" 
+@“\.[0-9]{1,3}\])|(([a-zA-Z \-0-9]+\)+”
+@“[a-zA-Z]{2,}))$”;
Regex reStrict=新的Regex(patternStrict);
//bool isLenientMatch=relient.IsMatch(电子邮件地址);
//返回isLenientMatch;
bool-isStrictMatch=reStrict.IsMatch(电子邮件地址);
返回ISStritMatch;
}

public bool TestEmailRegex(字符串emailAddress)
{
//字符串模式长度=@“\w+([-+.]\w+*@\w+([-.]\w+*\)。\w+([-.]\w+*”;
//Regex relient=新的Regex(patternLenient);
字符串模式strict=@“^([^()[\]\\,;:\s@”“]+”
+@“(\.[^()[\]\\,;:\s@”“]+)*)|(.+)@”
+ @"((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" 
+@“\.[0-9]{1,3}\])|(([a-zA-Z \-0-9]+\)+”
+@“[a-zA-Z]{2,}))$”;
Regex reStrict=新的Regex(patternStrict);
//bool isLenientMatch=relient.IsMatch(电子邮件地址);
//返回isLenientMatch;
bool-isStrictMatch=reStrict.IsMatch(电子邮件地址);
返回ISStritMatch;
}

这是一种方法,但还有许多其他方法

public static bool isEmail(string emailAddress)
{
   if(string.IsNullOrEmpty(emailAddress))
      return false;

   Regex EmailAddress = new Regex(@"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$");

   return EmailAddress.IsMatch(emailAddress);
}

这是一种方法,但还有许多其他方法

public static bool isEmail(string emailAddress)
{
   if(string.IsNullOrEmpty(emailAddress))
      return false;

   Regex EmailAddress = new Regex(@"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$");

   return EmailAddress.IsMatch(emailAddress);
}

好吧,这很简单!:)

  • 否,不存在可以验证*电子邮件地址的正则表达式
  • 不,regex不能将“SerGIo TAPIA Gutierrez”转换为“SerGIo TAPIA Gutierrez”。当然,一些语言,比如Perl(或者其他语言)可以在regex es中混合一些奇特的东西来实现这一点,但实际执行转换的不是regex。regex只匹配文本,简单明了

  • *“有效”的意思是看地址是否真的存在。

    好吧,这很简单!:)

  • 否,不存在可以验证*电子邮件地址的正则表达式
  • 不,regex不能将“SerGIo TAPIA Gutierrez”转换为“SerGIo TAPIA Gutierrez”。当然,一些语言,比如Perl(或者其他语言)可以在regex es中混合一些奇特的东西来实现这一点,但实际执行转换的不是regex。regex只匹配文本,简单明了

  • *“valid”是指查看地址是否确实存在。

    顺便说一句,将regex写成regex使其看起来像FedEx@vinkNein fraulein:这都是关于引擎的…全部更换\Vinko感谢链接。我只担心它遵循这种模式。我不在乎它是否工作或是否被禁用。我只想让它运行XXX@yyy.zzzbtw.很有趣,你把正则表达式写成正则表达式,让它看起来像FedEx@vink奈恩·弗劳林:这都是关于引擎的……全部更换\n谢谢你的链接。我只担心它会遵循这种模式。我不在乎它是否工作或是否被禁用。我只想让它去XXX@yyy.zzz