//在c#.net中使用正则表达式检验输入是否为电子邮件
private static bool IsEmail(string itemValue)
{
return (IsRegEx(@"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", itemValue));
}
//在c#.net中使用正则表达式检验输入是否为电子邮件
private static bool IsRegEx(string regExValue, string itemValue)
{
try
{
Regex regex = new System.Text.RegularExpressions.Regex(regExValue);
if (regex.IsMatch(itemValue))
return true;
else
return false;
}
catch (Exception )
{
return false;
}
finally
{
}
}
private static string GetEmail(string itemValue)
{
return (GetRegEx(@"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", itemValue));
}
/// <summary>
/// 用正则表达式取所需字符串
/// </summary>
/// <param name="regExValue">正则表达式</param>
/// <param name="itemValue">待验证字符串</param>
/// <returns>符合值</returns>
private static string GetRegEx(string regExValue, string itemValue)
{
try
{
Regex regex = new System.Text.RegularExpressions.Regex(regExValue);
return regex.Match (itemValue).Value ;
}
catch (Exception )
{
return null;
}
}
Console.WriteLine (IsEmail(nText));
Console.WriteLine (GetEmail(nText));
第一段代码是我写的方法
第二段代码是我的主程序里的调用
输出结果是
FALSE
但是我的本意是先判断是否是合法的EMAIL地址
如果合法就输出该地址
如果不合法看是否里面包含了合法的EMAIL地址
如果包含就提取然后输出
目前的问题是可以判定输入的字符串是否合法的EMAIL地址
但是无法从包含EMAIL地址的非法字符串中提取合法的EMAIL地址
请大家帮俺看看为什么
[此贴子已经被作者于2006-11-10 15:04:15编辑过]