<td align="center">澳大利亚元</td><td align="center">100</td><td align="center">人民币</td><td align="right">555.99</td><td align="right">538.40</td>
就如这段代码。
新手求讲解和代码。C#

解决方案 »

  1.   

    正则表达式或者用成熟的库(htmlagilitypack)解析
      

  2.   

    我没接触过解析这方面,能帮我写下吗?
    http://zhoufoxcn.blog.51cto.com/792419/595344
      

  3.   

    我没接触过解析这方面,能帮我写下吗?
    http://zhoufoxcn.blog.51cto.com/792419/595344
    要是不从网页提取html,直接解析想1楼的字符串呢?
      

  4.   

    <td[^>]*?>(?<content>[\s\S]*?)</td>
      

  5.   

    \<td [^\>]*>([^\<]*)\</td\>
      

  6.   


                            //name
                            Regex re = new Regex(@"<a.*?>(?<text1>.*?)</a>");
                            int i = 0;
                            for (Match m = re.Match(arrlist[p].Trim()); m.Success && i < 116; m = m.NextMatch())
                            {                            if (!string.IsNullOrEmpty(m.Groups["text1"].Value.Trim()))
                                {
                                    namelist.Add(m.Groups["text1"].Value.Trim());
                                    i++;
                                }                        }
      

  7.   

    加入前面的字符串会出错,哎,这个哪里有详细教程呀
    arrlist[p].Trim()是匹配的字符串啊,你看懂了再用啊,上面是匹配td的正则表达式噢!
      

  8.   

    加入前面的字符串会出错,哎,这个哪里有详细教程呀
    arrlist[p].Trim()是匹配的字符串啊,你看懂了再用啊,上面是匹配td的正则表达式噢!
    错了是A的正则,(@"<a.*?>(?<text1>.*?)</a>");把这个改成TD就是TD的正则了
      

  9.   

      /// <summary>
        /// Html文件处理类
        /// </summary>
        public class HtmlProcess
        {        /// <summary>
            /// 获取指定ID的标签内容
            /// </summary>
            /// <param name="html">HTML源码</param>
            /// <param name="id">标签ID</param>
            /// <returns></returns>
            public static string GetElementById(string html, string id)
            {
                string pattern = @"<([a-z]+)(?:(?!id)[^<>])*id=([""']?){0}\2[^>]*>(?>(?<o><\1[^>]*>)|(?<-o></\1>)|(?:(?!</?\1).))*(?(o)(?!))</\1>";            pattern = string.Format(pattern, Regex.Escape(id));            Match match = Regex.Match(html, pattern, RegexOptions.Singleline | RegexOptions.IgnoreCase);            return match.Success ? match.Value : "";
            }
            /// <summary>
            /// 通过class属性获取对应标签集合
            /// </summary>
            /// <param name="html">HTML源码</param>
            /// <param name="className">class值</param>
            /// <returns></returns>
            public static string[] GetElementsByClass(string html, string className)
            {
                return GetElements(html, "", className);
            }
            /// <summary>
            /// 通过标签名获取标签集合
            /// </summary>
            /// <param name="html">HTML源码</param>
            /// <param name="tagName">标签名(如div)</param>
            /// <returns></returns>
            public static string[] GetElementsByTagName(string html, string tagName)
            {
                return GetElements(html, tagName, "");
            }
            /// <summary>
            /// 通过同时指定标签名+class值获取标签集合
            /// </summary>
            /// <param name="html">HTML源码</param>
            /// <param name="tagName">标签名</param>
            /// <param name="className">class值</param>
            /// <returns></returns>
            public static string[] GetElementsByTagAndClass(string html, string tagName, string className)
            {
                return GetElements(html, tagName, className);
            }
            private static string[] GetElements(string html, string tagName, string className)
            {
                string pattern = "";
                if (tagName != "" && className != "")
                {
                    pattern = @"<({0})(?:(?!class)[^<>])*class=([""']?){1}\2[^>]*>(?>(?<o><\1[^>]*>)|(?<-o></\1>)|(?:(?!</?\1).))*(?(o)(?!))</\1>";
                    pattern = string.Format(pattern, Regex.Escape(tagName), Regex.Escape(className));
                }
                else if (tagName != "")
                {
                    pattern = @"<({0})(?:[^<>])*>(?>(?<o><\1[^>]*>)|(?<-o></\1>)|(?:(?!</?\1).))*(?(o)(?!))</\1>";
                    pattern = string.Format(pattern, Regex.Escape(tagName));
                }
                else if (className != "")
                {
                    pattern = @"<([a-z]+)(?:(?!class)[^<>])*class=([""']?){0}\2[^>]*>(?>(?<o><\1[^>]*>)|(?<-o></\1>)|(?:(?!</?\1).))*(?(o)(?!))</\1>";
                    pattern = string.Format(pattern, Regex.Escape(className));
                }
                if (pattern == "")
                {
                    return new string[] { };
                }
                List<string> list = new List<string>();            Regex reg = new Regex(pattern, RegexOptions.Singleline | RegexOptions.IgnoreCase);            Match match = reg.Match(html);            while (match.Success)
                {
                    list.Add(match.Value);                match = reg.Match(html, match.Index + match.Length);
                }
                return list.ToArray();
            }
      

  10.   

    楼主可以使用这个靠谱~使用xpath直接可以提取元素了~