C#使用正则表达式解析超链接文本和地址

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

表达式1,获取href地址:

(?is)<a[^>]*?href=(['""\s]?)(?<href>[^'""\s]*)\1[^>]*?>


 

c#代码:

	Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""\s]?)(?<href>[^'""\s]*)\1[^>]*?>"); 
            MatchCollection match = reg.Matches(textBox1.Text); 
            foreach (Match m in match) 
            { 
                   textBox2.Text += m.Groups["href"].Value;
            } 


表达式2,可获取文本和地址:

<a.*?(?: |\t|\r|\n)?href=[\'"]?(.+?)[\'"]?(?:(?: |\t|\r|\n)+.*?)?>(.+?)<\/a.*?>


 

有时<a></a>中间还有<img>,可以参考以下代码去除:

string html = 要匹配的字符串;
Regex reg = new Regex(@"<a\s*[^>]*>([\s\S]+?)</a>", RegexOptions.IgnoreCase);
Match m = reg.Match(html);
while(m.IsSuccess)
{
string innerHTML = m.Result("$1");// 得到正则的括号里的内容,就是a的innerHTML
innerHTML = Regex.Replace(innerHTML, @"<[^>]*>", "",RegexOptions.IgnoreCase);// 替换掉里面的html,只保留文字 
m = m.NextResult;// 循环匹配html里的下一个结果
}


另外还搜到一个表达式,测试了一下好像没用,留着参考:

Regex reg = new Regex(@"(?is)<a(?:(?!href=).)*href=(['""]?)(?<url>[^""\s>]*)\1[^>]*>(?<text>(?:(?!</?a\b).)*)</a>");
MatchCollection mc = reg.Matches(str);
foreach (Match m in mc)
{
  TextBox1.Text += m.Groups["url"].Value + "\n";   
  richTextBox2.Text += m.Groups["text"].Value + "\n";   
 }


 

C#实现简单的网页爬虫 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; namespace 阅读详情

相关推荐

基于C# WinForm的RichTextBox文本编辑器实战项目

是 WinForm 中功能强大的富文本编辑控件,支持 RTF 格式、字体样式、颜色段落格式。常用属性包括Text(纯文本内容)、Rtf(RTF 格式字符串)(当前选中文本)。}";通过设置ReadOnlyMultilineWordWrap等属性可控制编辑行为与显示方式,为后续高级功能奠定基础。有时需要传输额外元数据(如作者、时间戳),可通过注册自定义格式实现:set;set;set;说明::注册唯一的剪贴板格式名称。

weixin_33375360的博客 1119

Java正则获取a标签href_正则表达式,同时获取a标签里的href,text 的值

string pattern = @"]+href=\s*(?:'(?[^']+)'|""(?[^""]+)""|(?[^>\s]+))\s*[^>]*>(?.*?)";string strRst = str.ToLower(); //匹配的字符串MatchCollection mc = Regex.Matches(strRst, pattern, RegexOptions.I...

weixin_26854555的博客 2886

C#提取网页中超链接linktext部分的方法

主要介绍了C#提取网页中超链接linktext部分的方法,涉及C#正则表达式及字符串操作相关技巧,需要的朋友可以参考下

C#使用正则表达式提取超链接地址

一般在做爬虫或者CMS的时候经常需要提取 href链接或者是src地址。此时可以使用正则表达式轻松完成。 方法一: Regex reg = new Regex(@"(?is)]*?href=(['""]?)(?[^'""\s>]+)\1[^>]*>(?(?:(?!"); MatchCollection mc = reg.Matches(yourStr); foreach (Match m

何足道也 7756

C#中利用正则表达式提取网文链接

public static Regex regexAllLink = new Regex(   @"((HREF)|(SRC))/s*=/s*[""+""/""""+@""]?  (?[/w/W]+?) "   + @"["" + ""/""""+@""/s/>]",   RegexOptions.IgnoreCase   | RegexOptions.CultureInvariant   |

manuever的专栏 1319

C#实现截取a标签href中值实现标题内容截取

C#字符截取 a标签 href 值 内容

qq_41663470的博客 537

C#】获取文本中的链接,通过正则表达式的方法获取以及优化兼容多种格式

在看CSDN平台上的私信时,PC端是如何识别到文本链接的, 后来想想,应该是在录入时就已经识别并按链接方式保存,所以发送显示私信文本时就是一个链接。 处于这个好奇,假如是一个纯文本情况下又如何识别,博主尝试通过正则表达式进行识别出来。

小5聊的博客 2080

在asp.net中自动给url地址加上超链接

    要想自动显示超链接的关键在于如何能正确识别超链接,毫无疑问的,最有效的方法是用正则表达式正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式,描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。.net基础类库中包含有一个名字空间一系列可以充分发挥规则表达式威力的类,用它就可以自动探...

weixin_33725515的博客 147

c#使用正则表达式获取TR中的多个TD_C#编写一个简单的爬虫

首先本文并不是针对某网站来的。我是怀有深深的xx来写的。以方便日后。大哥大姐如果看到小弟的文章不屑一顾的话,到此就可以走了,要不我送送你。计算机环境使用的vs2015社区版,数据库使用的MSSQL 2012(偷偷的说:使用的是网上的密钥哈。)说一下简单的原理:首先模拟浏览获取网页。其次分析网页的内容。最后根据自己的需要把数据储存在数据库中。(超级简单吧)备注一句:如果是分布式爬虫的话,我考虑考虑哈...

weixin_39951930的博客 341

C# 解析 Word 超链接:字段识别、屏幕提示读取

# 理解Word超链接的结构Word文档中的超链接主要有两种表现形式:1.块包裹Open XML操作,因为文档可能损坏或包含不支持的格式## 总结本文详细介绍了使用C#Open XML SDK解析Word文档中超链接的方法,重点讲解了字段识别屏幕提示的读取技术。## 代码示例2:高级解析——处理嵌套字段复杂文档实际文档中可能包含复杂的字段嵌套,例如超链接字段中嵌入书签引用。## 代码示例1:读取文档中的所有超链接以下代码演示了如何遍历Word文档,识别并提取所有超链接信息,包括字段代码屏幕提示。

uj6o0K2o0的博客 186

利用正则表达式自动给Email地址Url加上连接

using System;using System.Text.RegularExpressions; namespace CommLayer...{       /**////        /// 自动给邮件地址或email地址加上url       ///        public class HyperlinkUrl       ...{              private st

dql's blog 695

自动识别并加上超链接 JS来控制按钮上面的显示字。

自动识别并加上超链接private void Button1_Click(object sender, System.EventArgs e){string strContent = InputTextBox.Text; Regex urlregex = new Regex(@"(http:////([/w.]+//?)/S*)",RegexOptions.IgnoreCase| RegexO

zj_2009的专栏 3814

转载 Unity Text 插入超链接

using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; us...

dongfengsi7020的博客 401

c#正则表达式获取html超链接

private Dictionary<string, string> GetUrl(string content) { Dictionary<string, string> dics = new Dictionary<string, string>(); string patter...

weixin_30782331的博客 235

提取网页中的超链接

using System; using System.Xml; using System.Text; using System.Net; using System.IO; using System.Collections; using System.Text.RegularExpressions; public class App { public static void Main() { str

深度Java 5738

C# 用正则取文本中所有链接

C# 用正则取文本中所有链接 string pattern = @"<a\s*href=(""|')(?<href>[\s\S.]*?)(""|').*?>\s*(?<name>[\s\S.]*?)</a>"; MatchCollection mc = Regex.Matches...

weixin_30267697的博客 268

视频教程-C#入门精讲(10)正则表达式及应用-C#

C#入门精讲(10)正则表达式及应用 徐照兴,教研室主任,硕士,副教授,专业...

weixin_30913173的博客 263

Unity UGUI自定义文本组件GText:实现表情与超链接的完整解决方案

在Unity游戏开发中,UGUI文本渲染是构建用户界面的基础技术之一。其核心原理是通过TextGenerator将字符串转换为网格进行绘制,但原生Text组件在功能上存在局限。为了提升文本的交互性与表现力,开发者需要扩展其能力,实现富文本渲染与交互。这带来了显著的技术价值:增强用户体验、支持动态内容展示,并降低开发复杂度。在聊天系统、任务描述、社交功能等应用场景中,对表情符号超链接的支持成为刚需。GText组件正是针对这些需求设计的增强方案,它通过拦截网格生成流程,实现了表情渲染与超链接交互,解决了原生组

weixin_34295316的博客 393
上一篇: C# 小叙 Encoding
下一篇: C#正则表达式语法规则详解
xdonx
博客等级 码龄19年 102粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值