欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#基于正则表达式抓取a标签链接和innerhtml的方法

程序员文章站 2023-11-17 10:10:34
本文实例讲述了c#基于正则表达式抓取a标签链接和innerhtml的方法。分享给大家供大家参考,具体如下: //读取网页html string text = f...

本文实例讲述了c#基于正则表达式抓取a标签链接和innerhtml的方法。分享给大家供大家参考,具体如下:

//读取网页html
string text = file.readalltext(environment.currentdirectory + "//test.txt", encoding.getencoding("gb2312"));
string prttern = "<a(\\s+(href=\"(?<url>([^\"])*)\"|'([^'])*'|\\w+=\"(([^\"])*)\"|'([^'])*'))+>(?<text>(.*?))</a>";
var maths = regex.matches(text, prttern);
//抓取出来写入的文件
using (filestream w = new filestream(environment.currentdirectory + "//wirter.txt", filemode.create))
{
    for (int i = 0; i < maths.count; i++)
    {
      byte[] bs = encoding.utf8.getbytes(string.format("链接地址:{0},  innerhtml:{1}", maths[i].groups["url"].value,
        maths[i].groups["text"].value) + "\r\n");
      w.write(bs, 0, bs.length);
      console.writeline();
    }
}
console.readkey();

图解正则

C#基于正则表达式抓取a标签链接和innerhtml的方法

朋友需要截取img标签的src 和data-url   跟上面差不多。。顺便附上

string text =file.readalltext(environment.currentdirectory + "//test.txt", encoding.getencoding("gb2312"));
string prttern = "<img(\\s*(src=\"(?<src>[^\"]*?)\"|data-url=\"(?<dataurl>[^\"]*?)\"|[-\\w]+=\"[^\"]*?\"))*\\s*/>";
var maths = regex.matches(text, prttern);
//抓取出来写入的文件
using (filestream w = new filestream(environment.currentdirectory + "//wirter.txt", filemode.create))
{
    for (int i = 0; i < maths.count; i++)
    {
      byte[] bs = encoding.utf8.getbytes(string.format("图片src:{0},  图片data-url:{1}", maths[i].groups["src"].value,
        maths[i].groups["dataurl"].value) + "\r\n");
      w.write(bs, 0, bs.length);
      console.writeline();
    }
}

ps:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

javascript正则表达式在线测试工具:

正则表达式在线生成工具:

更多关于c#相关内容感兴趣的读者可查看本站专题:《c#正则表达式用法总结》、《c#编码操作技巧总结》、《c#中xml文件操作技巧汇总》、《c#常见控件用法教程》、《winform控件用法总结》、《c#数据结构与算法教程》、《c#面向对象程序设计入门教程》及《c#程序设计之线程使用技巧总结

希望本文所述对大家c#程序设计有所帮助。