日期:2014-05-18 浏览次数:20883 次
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。