常用的正则表达式
2012-10-22 23:41 音乐让我说 阅读(2111) 评论(0) 编辑 收藏 举报工具 RegexTester 下载:https://files.cnblogs.com/Music/RegexTester.zip
在线正则表达式测试网站:https://regex101.com/
1. 批量处理 Html img 标签,给 img 标签包裹一个 <a href="${url}"> 标签,用来实现“查看大图”的功能
在博客园写文章时,经常要上传图片,而有时候上传的图片是数码照片,尺寸(分辨率)很大。而这时需要在上传完所有的图片后,批量给这些图片增加一个“查看大图”的功能,也就是 Html 代码中给 img 标签包裹一个 a 标签,这个 a 标签的 href 指向 img 的 src 值。
在博客园上传完所有图片后,点击编辑器里面的“编辑HTML源代码”按钮,
比如:
<p>请看如下图片</p> <p>IMG-01:</p> <p><img src="http://pic002.cnblogs.com/images/2012/111111/2012102222273010.png" alt="" /></p> <p>IMG-02:</p> <p><img src="http://pic002.cnblogs.com/images/2012/111111/2012102222281511.png" alt="" /></p> <p>IMG-03:</p> <p><img src="http://pic002.cnblogs.com/images/2012/111111/2012102222285412.png" alt="" /></p> <p>IMG-04:</p> <p><img src="http://pic002.cnblogs.com/images/2012/111111/2012102222292513.png" alt="" /></p> <p>等等,下面可能还有很多、很多图片...</p> <p>上传完毕!</p>
而按照本文下面说的,需要给这些 img 标签包裹一个 a 标签,a 标签的 href 指向 img 的 src 值。由于图片可能会很多,不可能手工一个一个的加,那么我们需要一个正则表达式工具来替换,比如 VS 自带的搜索与替换,就能满足这个功能,主要是写正则表达式。
我写的正则表达式如下:
Regex: \<\s*[iI][mM][gG]\s+(.*?)src="(?<url>.*?)"(.*?)\/>
Replace: <a href="${url}" target="_blank"><img src="${url}" width="100%" alt="点击看大图" title="点击看大图" /></a>
示例:
2. 清除包含 img 标签的 a 标签,同时保留 a 标签中间的 Html 代码
Regex: <\s*[a|A]\s*[^>]*>(\s*\<\s*[iI][mM][gG]\s+.*?)<\/[a|A]>
Replace: $1
示例:
3. 批量替换 C# 类里面的属性成 “XProperty = ,”。
有时候我们在写代码的代码的时候,比如 Student 类,里面有几十上百个属性(Property),在new 构造的时候,要一个一个的赋值,太麻烦,我就想到用正则表达式来实现。
查找目标:.*?\s+(\w+)\s+\{\s*get\s*;\s*set\s*;\s*\}
替换为:$1 = ,
4. 批量替换 <a> 标签中的 href 占位符
查找 Regex:(\<a[\s\S]*?href[\s\S]*?=[\s\S]*?")([\s\S]*?\{[\s\S]*?Id[\s\S]*?\:([\s\S]*?)\}[\s\S]*?)("[\s\S]*?>)
替换 Regex:$1http\:\/\/www.baidu.com/?id=$3$4
测试文本:
<a target="_blank" href="{Id:13445}">AMD即将在2019年7月发布Ryazen第三代CPU (更新日期:<span style="color:black;">2019-03-15</span>)(此时状态:<span style="color:red;" title="此时的时间是 2019-04-01 20:56,状态也是这个时候的状态。">新增</span>) </a>
用上面的正则替换以后(请注意:只有 href 有变化)
<a target="_blank" href="http://www.baidu.com/?id=13445">AMD即将在2019年7月发布Ryazen第三代CPU (更新日期:<span style="color:black;">2019-03-15</span>)(此时状态:<span style="color:red;" title="此时的时间是 2019-04-01 20:56,状态也是这个时候的状态。">新增</span>) </a>
5. 斗鱼直播的标题重命名
Regex:([0-9]?月?[0-9]?[0-9]?[0-9]?号?)\s*(.*?)\s*(201[0-9]\-[0-9]?[0-9]\-[0-9]?[0-9]\s*[0-9]?[0-9]点场)
Replace:$3 $2
占位
工具 RegexTester 下载:https://files.cnblogs.com/Music/RegexTester.zip
在线正则表达式测试网站:https://regex101.com/
谢谢浏览!
作者:音乐让我说(音乐让我说 - 博客园)
出处:http://music.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步