比如说我有个网页内容如下
<link type='text/css' rel='stylesheet' href='a.css' /><link type='text/css' rel='stylesheet' href='b.css' /><div><input/></div>我要提取a.css和b.css,怎么做
winform里的

解决方案 »

  1.   

     string temp = @"比如说我有个网页内容如下
    <link type='text/css' rel='stylesheet' href='a.css' /><link type='text/css' rel='stylesheet' href='b.css' /><div><input/></div>
     
    ";
                    string[] arr= Regex.Matches(temp, @"(?i)<link[^>]*?href=(['""])([^'""]*?)\1[^>]*?>").Cast<Match>().Select(a => a.Groups[2].Value).ToArray();
                   /*
                    * a.css
                    * b.css
                    */ 
      

  2.   

     string str = "<link type='text/css' rel='stylesheet' href='a.css' /><link type='text/css' rel='stylesheet' href='b.css' /><div><input/></div>";
                Regex.Matches(str, @"<link[\s\S]*?href=['""]([^'""]+)['""][^/]+/>").Cast<Match>().ToList().ForEach(t => Console.WriteLine(t.Groups[1].Value));
                
      

  3.   

    (?i)<link\b[^>]*?href=(['"]?)([^"']*?)\1[^>]*?/>取Groups[2].Value
      

  4.   

    public static string[] GetLink(string sHtmlText)
            {
                Regex reg = new Regex(@"<link[\s\S]*?href=['""]([^'""]+)['""][^/]+/>");
                // 搜索匹配的字符串
                MatchCollection matches = reg.Matches(sHtmlText);            int i = 0;
                string[] sUrlList = new string[matches.Count];            // 取得匹配项列表
                foreach (Match match in matches)
                    sUrlList[i++] = match.Groups["href"].Value;            return sUrlList;
            }
    我是这样写的,取不到
      

  5.   

    因为你并没有加入分组 要么修改Regex reg = new Regex(@"<link[\s\S]*?href=['""]([^'""]+)['""][^/]+/>");
    =》
    Regex reg = new Regex(@"<link[\s\S]*?href=['""](?<href>[^'""]+)['""][^/]+/>");
    要么将
    match.Groups["href"].Value;=》match.Groups[1].Value;