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

发布时间 - 2026-01-11 01:35:25    点击率:

本文实例讲述了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();

图解正则

朋友需要截取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正则表达式在线测试工具:
http://tools./regex/javascript

正则表达式在线生成工具:
http://tools./regex/create_reg

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

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


# C#  # 正则表达式  # 抓取  # a标签  # 链接  # innerhtml  # c#使用htmlagilitypack解析html格式字符串  # C#抓取网页数据 解析标题描述图片等信息 去除HTML标签  # C#自写的一个HTML解析类(类似XElement语法)  # c#使用nsoup解析html乱码解决方法分享 nsoup教程  # C#下解析HTML的两种方法介绍  # C# 使用 WebBrowser 实现 HTML 转图片功能的示例代码  # 利用C#代码将html样式文件与Word文档互换的方法  # C#正则过滤HTML标签并保留指定标签的方法  # 通过C#实现发送自定义的html格式邮件  # c# 使用HtmlAgilityPack解析Html  # 程序设计  # 操作技巧  # 相关内容  # 感兴趣  # 数据结构  # 给大家  # 更多关于  # 所述  # 使用技巧  # 面向对象  # 再为  # 测试工具  # 讲述了  # lt  # prttern  # href  # Encoding  # txt  # GetEncoding 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 个人摄影网站制作流程,摄影爱好者都去什么网站?  JavaScript常见的五种数组去重的方式  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  如何快速查询网址的建站时间与历史轨迹?  如何在IIS中配置站点IP、端口及主机头?  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何在橙子建站中快速调整背景颜色?  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  Android利用动画实现背景逐渐变暗  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  香港服务器WordPress建站指南:SEO优化与高效部署策略  如何快速搭建高效简练网站?  如何构建满足综合性能需求的优质建站方案?  jQuery中的100个技巧汇总  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  Laravel中的withCount方法怎么高效统计关联模型数量  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  canvas 画布在主流浏览器中的尺寸限制详细介绍  如何在 React 中条件性地遍历数组并渲染元素  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  Laravel如何自定义错误页面(404, 500)?(代码示例)  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  香港服务器如何优化才能显著提升网站加载速度?  Java遍历集合的三种方式  清除minerd进程的简单方法  实例解析angularjs的filter过滤器  深圳网站制作培训,深圳哪些招聘网站比较好?  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  JavaScript如何实现错误处理_try...catch如何捕获异常?  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  教你用AI润色文章,让你的文字表达更专业  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Laravel怎么使用artisan命令缓存配置和视图  Linux系统运维自动化项目教程_Ansible批量管理实战  Laravel如何实现模型的全局作用域?(Global Scope示例)  Laravel如何实现API版本控制_Laravel版本化API设计方案  如何在IIS中新建站点并配置端口与物理路径?  javascript基于原型链的继承及call和apply函数用法分析