string ="上海电子商务培训优惠报名.. 上海电子商务培训指定报名网站!.. sh.topstudy.com.cn 盐城电子商务服务--盐城思科 盐城思科拥有强大的实力,专业提供盐城电子商务服务,电信全路由.. www.ycjs.cn 电子商务培训--中典计算机.. 重庆中典计算机学校提供室内外装饰设计培训、室内设计培训、电.. www.zdanet.com 电子商务软件平台--中科振兴 中科振兴是国内较早进行软件开发和技术服务的企业,经过十多年.. www.zkzx.com.cn";我是这样做的:
//RegExPattern = @"[\w-]+\.+[\w-]+\.+[\w-]+.*?";//这种写法肯定是不行的。
Regex r = new Regex(RegExPattern,RegexOptions.IgnoreCase|RegexOptions.Compiled);
if(r.Match(RegExString).Success)
{
for(……)
{
msg += (m.Groups["title"] + " - " + m.Groups["url"] + "<br> \r\n");
//我希望第一组中:m.Groups["url"].Value是分离后的字符串的值。如:上海电子商务培训优惠报名.. 上海电子商务培训指定报名网站!
//第一组中对应的title:m.Groups["title"].Value是分离后的字符串的值。如:sh.topstudy.com.cn。
//我希望第二组中:m.Groups["url"].Value是分离后的字符串的值。如:盐城电子商务服务--盐城思科 盐城思科拥有强大的实力,专业提供盐城电子商务服务,电信全路由..!
//第二组中对应的title:m.Groups["title"].Value是分离后的字符串的值。如:sh.topstudy.com.cn。
//其它各组依此类推……
}
}

解决方案 »

  1.   

    描述的不是很清楚,而且url与title直接好像弄颠倒了吧如果字符串是一串描述开始,以一个URL结束,那么可以试一下string s = @"上海电子商务培训优惠报名.. 上海电子商务培训指定报名网站!.. sh.topstudy.com.cn 盐城电子商务服务--盐城思科 盐城思科拥有强大的实力,专业提供盐城电子商务服务,电信全路由.. www.ycjs.cn 电子商务培训--中典计算机.. 重庆中典计算机学校提供室内外装饰设计培训、室内设计培训、电.. www.zdanet.com 电子商务软件平台--中科振兴 中科振兴是国内较早进行软件开发和技术服务的企业,经过十多年.. www.zkzx.com.cn";string pattern = @"(?<title>.*?)(?<url>([\w-]+\.)+[\w-]+)";
    Regex re = new Regex(pattern,RegexOptions.IgnoreCase|RegexOptions.Singleline|RegexOptions.Compiled);
    foreach (Match m in re.Matches(s))
    {
      Console.WriteLine("title:"+m.Groups["title"].Value);
      Console.WriteLine("url:"+m.Groups["url"].Value);
    }