正则匹配 | 正则实际应用探索分享

这并不是一篇教正则基础的文章,其正则式不能对您进行使用后的结果负责,请以研究的眼光看待本篇文章。

技术就是懒人为了更好的懒才会想办法搞的东西,我最近因为某些原因需要频繁删除注释

我就想到通过替换的正则功能快速删除文件中的简单注释

我开始想着只要匹配后面的内容,那么只需要更换前面的“头”就能适配其他语言了,然后写出了一个十分臃肿的正则匹配工式

JavaScript单行臃肿版

//(( )|\w|[`!@#$%^&*?/*+-;'""“”;:|()()]|\S)*

正则匹配 | 正则实际应用探索分享_第1张图片

HTML单行臃肿版

)
$)

很显然也行不通

最终研究出了一个按逐符读写的模式来匹配内容的妥协方案的公式

PHP多行适配简洁版

正则匹配 | 正则实际应用探索分享_第6张图片

多行注释不能存在空行问题

虽然多行和单行注释全都能匹配到,但是多行注释不能存在空行,例如php注释:

正则匹配 | 正则实际应用探索分享_第7张图片

第8行的空行会导致这个注释不能被识别到

在网上搜了很多资料并进行很多尝试,那些所谓的匹配空行的办法并不能真正解决这个问题,以目前正则研究的水平,我现在还真是拿它没办法了,只能先通过改变用户习惯,多行注释不打空行来保证一次删的干净。

jetbrain全家桶程序编辑器使用本文正则公式方法

先通过Ctrl+R来打开“替换”功能

一般默认不开启正则匹配的,所以要点亮正则图标

正则匹配 | 正则实际应用探索分享_第8张图片

将公式粘进第一行,第二行为空,然后直接点击“全部替换”即可

多行适配简洁版(可以试一试)

按默认习惯做的,如果你的习惯不太一样则需要稍加修改

Javascript单多行通用

/\*((.\s)|.)*\*/

Python单行

#(.)*

Python双引号多行

"""\s((.\s)|.)*"""

正则匹配 | 正则实际应用探索分享_第9张图片 

Python单引号多行

'''\s((.\s)|.)*'''

正则匹配 | 正则实际应用探索分享_第10张图片 

HTML单多行通用

总结

从晚上11点提出需求到本文写完已经是凌晨3点了,最后结局留有遗憾,本文仅作为研究性讨论文章,不具有技术指导意义。

在正则问题的研究中,通过实际问题,从最初的复杂公式,精简为精炼公式,从解决单行问题,到解决多行问题,在过程中加深了对正则的理解与认识,在今后的代码工作与学习中,正则的运用将提高编码效率和技术水平

你可能感兴趣的:(python精进,正则表达式)