<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#
就如这段代码。
新手求讲解和代码。C#
解决方案 »
- C#树桩控件
- VS2010 想看项目属性,结果右键菜单限制了显示长度,如何设置?
- C# Delegate 作用和语法解释
- 搞串口的苦恼
- [请大家讨论]免费邮箱SMTP发邮件的参数设置问题。。。
- 格式问题,小问题,但你不一定回答上来
- VS2005 GridView 更改数据后 gridview 还是显示原来的数据 下次刷新时才更新
- 问两个问题,请大家提供思路,能帮忙的另有重谢!回帖有分!
- C# 串口通信的群 1402238 (GPS,电台等设备,手机短信).分数100
- 自定义水晶报表的显示,比如隐藏工具栏,让报表左对齐,去除水晶报表的公司LOGO等………(新作:海波.NET)
- form和webbrowser的Dispose方法
- C# 安装部署后运行程序提示错误
http://zhoufoxcn.blog.51cto.com/792419/595344
http://zhoufoxcn.blog.51cto.com/792419/595344
要是不从网页提取html,直接解析想1楼的字符串呢?
//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++;
} }
arrlist[p].Trim()是匹配的字符串啊,你看懂了再用啊,上面是匹配td的正则表达式噢!
arrlist[p].Trim()是匹配的字符串啊,你看懂了再用啊,上面是匹配td的正则表达式噢!
错了是A的正则,(@"<a.*?>(?<text1>.*?)</a>");把这个改成TD就是TD的正则了
/// 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();
}