标题:EMAIL地址判定以及提取的问题[已解决]
取消只看楼主
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
 问题点数:0 回复次数:3 
EMAIL地址判定以及提取的问题[已解决]

//在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;
}
}



string nText="645;432423.ghjg.fdnoshow@noshow.com";
Console.WriteLine (IsEmail(nText));
Console.WriteLine (GetEmail(nText));


第一段代码是我写的方法
第二段代码是我的主程序里的调用
输出结果是
FALSE

但是我的本意是先判断是否是合法的EMAIL地址
如果合法就输出该地址
如果不合法看是否里面包含了合法的EMAIL地址
如果包含就提取然后输出

目前的问题是可以判定输入的字符串是否合法的EMAIL地址
但是无法从包含EMAIL地址的非法字符串中提取合法的EMAIL地址

请大家帮俺看看为什么

[此贴子已经被作者于2006-11-10 15:04:15编辑过]

搜索更多相关主题的帖子: 电子邮件 EMAIL string bool itemValue 
2006-11-10 10:23
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
得分:0 
[QUOTE]^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$[/QUOTE]

找到问题所在了
这个正则是我从网上搜索到的

该正则表达式是用来验证字符串时候合法的EMAIL地址的
而不是用来从字符串中提取合法EMAIL地址用的
所以...

我想我该研究一下把这个改为提取EMAIL的正则了... -_-!
希望明白的HELP一下 怎么样改
谢谢


此号自封于2006年11月30日
2006-11-10 11:29
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
得分:0 
以下是引用xxxxx52在2006-11-10 11:33:53的发言:

啊 是正则啊...

好久不见 呵呵
快帮俺研究研究


此号自封于2006年11月30日
2006-11-10 11:43
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
得分:0 
([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)


研究过发现去掉开始和结尾就行了
真水

此号自封于2006年11月30日
2006-11-10 15:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-101943-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.770618 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved