日期:2014-05-18 浏览次数:21054 次
string Productinfo = GetRegValue("<td align=\"left\">\s*<ul>(\s*<li>([^<]*)</li>\s*)*</ul></td>", jg1);
------解决方案--------------------
"<td align=\"left\"><ul>(.*)</ul></td>"
=》
"<td align=\"left\"><ul>([\s\S]*?)</ul></td>"
------解决方案--------------------
为什么要用正则?为什么不通过HTML DOM解析获取?
------解决方案--------------------
'.'的话需要指定单行模式,可以在正则表达式开头附加"(?s)"子串指定单行模式。
------解决方案--------------------
 List<string> list = new List<string>();
Regex reg = new Regex("<(?<tag>li)[^>]*.*?>(?<content>.*?)</\k<tag>>
", RegexOptions.IgnoreCase | RegexOptions.Singleline);
           MatchCollection mc = reg.Matches(html);
           if (mc.Count > 0)
           {
               foreach (Match m in mc)
               {
                   list.Add(m.Groups["content"].Value);
               }
               return list.ToArray();
           }
------解决方案--------------------
我个人认为,关于处理 XML 的地方,如果不涉及到非常特殊的数据,能用 Linq To XML 就用 Linq To XML。