优化一个正册表达试 string re = @"\.\w+(\.\w{2,3})(?:[^\w\.]|$)";匹配 "在www.csdn.net上" 取得 .net不匹配 "在ad.us/user上" 我要取得 .us但不能匹配 as.ed 这么做可以匹配 有2个"." 或者一个"."的必须有"/"符号啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我改成这样,不过台长了re = @"(?:\.[A-Za-z0-9-]+(\.[A-Za-z]{2,3})(?:[^A-Za-z0-9-\.]|$))|[A-Za-z0-9-]+(\.[A-Za-z]{2,3})\\(?:[A-Za-z0-9-])";能不能简化一点.而且我哪个长的,取值麻烦Match hrefMatch = Regex.Match(text_str, re, RegexOptions.IgnoreCase | RegexOptions.Multiline);string domain = hrefMatch.Groups[1].Value;//这里一会要Groups[1].一会要Groups[2].还要判断一下哪个有值. try... static void Main(string[] args) { Regex re=new Regex(@".\w+(\.\w{0,1,2,3})?(?:[^\/\\w\.]|$)"); string yourStr = "ad.us/user"; if(re.Match(yourStr).Success) Console.WriteLine(re.Match(yourStr)); } 就是这个意思,我要取得一段文字中有域名的最后一个域,即"文字文字www.csdn.net文字文字" 取得 .net "文字文字ad.us/user文字文字" 我要取得 .us 但不能取得 "文字文字as.ed文字文字" 中的.ed 因为一个.可以会取错,不是网址的也取了,比如 Mr.Xie,可能会误取到.Xie就是文字中有2个"." 或者一个"."的必须有"/"符号的网址,取得这个网址的最大域. 这个应该是效率最高的了吧。[code=C#] string re = @"(?i)(?:http://)?[^/]+"; string[] tmp = Regex.Match("http://topic.csdn.net/u/20090717/09/87a4e605-c72c-4ec4-a177-0df969e6f10f.html?30756", re).Value.Split('.'); MessageBox.Show("."+tmp[tmp.Length-1]);code] 晕,排版错乱,重发: string re = @"(?i)(?:http://)?[^/]+"; string[] tmp = Regex.Match("http://topic.csdn.net/u/20090717/09/87a4e605-c72c-4ec4-a177-0df969e6f10f.html?30756", re).Value.Split('.'); MessageBox.Show("."+tmp[tmp.Length-1]); 如何只保证两个线程且只有两个线程执行 比较复杂的语句,请大家看看,有关同比,环比的. C# .NET CF下使用sqlite的问题,困扰我很久了 再问一个很弱的问题 正则表达式 viusal C# 2003中有“#if DEBUG”吗? 调用虚拟路径的问题? c# 如何将object转化为double 很老的问题了调用dll 有没有办法把类的英文显示为中文 .net打包问题 C# decimal类型如何只显示小数点后两位
re = @"(?:\.[A-Za-z0-9-]+(\.[A-Za-z]{2,3})(?:[^A-Za-z0-9-\.]|$))|[A-Za-z0-9-]+(\.[A-Za-z]{2,3})\\(?:[A-Za-z0-9-])";
能不能简化一点.
而且我哪个长的,取值麻烦
Match hrefMatch = Regex.Match(text_str, re, RegexOptions.IgnoreCase | RegexOptions.Multiline);
string domain = hrefMatch.Groups[1].Value;//这里一会要Groups[1].一会要Groups[2].还要判断一下哪个有值.
static void Main(string[] args)
{
Regex re=new Regex(@".\w+(\.\w{0,1,2,3})?(?:[^\/\\w\.]|$)");
string yourStr = "ad.us/user";
if(re.Match(yourStr).Success)
Console.WriteLine(re.Match(yourStr));
}
"文字文字www.csdn.net文字文字" 取得 .net
"文字文字ad.us/user文字文字" 我要取得 .us 但不能取得 "文字文字as.ed文字文字" 中的.ed 因为一个.可以会取错,不是网址的也取了,比如 Mr.Xie,可能会误取到.Xie就是文字中有2个"." 或者一个"."的必须有"/"符号的网址,取得这个网址的最大域.
[code=C#]
string re = @"(?i)(?:http://)?[^/]+";
string[] tmp = Regex.Match("http://topic.csdn.net/u/20090717/09/87a4e605-c72c-4ec4-a177-0df969e6f10f.html?30756", re).Value.Split('.');
MessageBox.Show("."+tmp[tmp.Length-1]);code]
string re = @"(?i)(?:http://)?[^/]+";
string[] tmp = Regex.Match("http://topic.csdn.net/u/20090717/09/87a4e605-c72c-4ec4-a177-0df969e6f10f.html?30756", re).Value.Split('.');
MessageBox.Show("."+tmp[tmp.Length-1]);