当前位置:首页 » 《随便一记》 » 正文

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

20 人参与  2024年02月29日 10:56  分类 : 《随便一记》  评论

点击全文阅读


欢迎来到《小5讲堂》
大家好,我是全栈小5。
这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解,
特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

在这里插入图片描述

目录

前言链接匹配提取正则表达式一优化正则 正则表达式概念1.匹配数字2.匹配字母3.匹配空白字符4.匹配特定字符5.匹配重复次数6.匹配选择项7.匹配起始和结束位置 相关文章

前言

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

链接匹配提取

通过一定规则和规律进行文本提取,第一个比较明显的规律就是链接第一是含有http协议

正则表达式一

代码
 string pattern = @"(https?://[^\s]+)"; Regex regex = new Regex(pattern); MatchCollection matches = regex.Matches(item.content); foreach (Match match in matches) {     Console.WriteLine(match.Value); }
效果
在这里插入图片描述
上面代码还是不够准确的,并且必须是识别了https协议开头的链接,比如下面这个文本就不支持了
在这里插入图片描述

优化正则

优化后的正则表达式

((https?|ftp|file)?/[-A-Za-z0-9+&@#/%?=_|!:,.;]*[-A-Za-z0-9+&@#/%=_|])

string content = @"我刚创作了一篇博文:《【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),代码实现篇》http://t.csdnimg.cn/j1M12,快来支持我吧!";string pattern = @"((https?|ftp|file):\/\/[\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_|])";Regex regex = new Regex(pattern);MatchCollection matches = regex.Matches(content);foreach (Match match in matches){    Console.WriteLine(match.Value);}

在这里插入图片描述

正则表达式概念

正则表达式是一种用来描述字符串匹配规则的强大工具。它可以用来在文本中搜索、匹配和替换符合特定模式的字符串。在 C# 中,你可以使用 System.Text.RegularExpressions 命名空间中的类来处理正则表达式。

下面是一些常用的正则表达式语法和模式示例:

1.匹配数字

\d 表示任意一个数字。例如,\d+ 可以匹配一个或多个连续的数字。

2.匹配字母

\w 表示任意一个字母或数字。例如,\w+ 可以匹配一个或多个连续的字母或数字。

3.匹配空白字符

\s 表示任意一个空白字符,例如空格、制表符、换行符等。

4.匹配特定字符

可以使用字符本身来匹配。例如,
abc 可以匹配由字母 “a”、“b” 和 “c” 组成的字符串。

5.匹配重复次数

使用 {} 来指定某个模式的重复次数。例如,a{3} 表示连续出现 3 次的字符 “a”。

6.匹配选择项

使用 | 来分隔多个选择项。例如,(apple|banana) 可以匹配 “apple” 或 “banana”。

7.匹配起始和结束位置

使用 ^ 表示字符串的开始位置,$ 表示字符串的结束位置。例如,^start 表示以 “start” 开头的字符串。

这只是正则表达式语法中的一小部分。
正则表达式还包含更多高级的模式和操作符,可以根据需要进行学习和使用。

相关文章

【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),代码实现篇
【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),流程描述篇
【C#】约瑟夫原理举例2个代码实现
【C#】List泛型数据集如何循环移动,最后一位移动到第一位,以此类推
【C#】获取文本中的链接,通过正则表达式的方法获取以及优化兼容多种格式

温故而知新,不同阶段重温知识点,会有不一样的认识和理解,博主将巩固一遍知识点,并以实践方式和大家分享,若能有所帮助和收获,这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。


点击全文阅读


本文链接:http://zhangshiyu.com/post/71374.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1