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

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

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

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

研究过程(可跳过)

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

JavaScript单行臃肿版

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

HTML单行臃肿版

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

CSS单行臃肿版

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

 Python单行臃肿版

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

Java单行臃肿版

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

正当我还高兴呢

直到PHP的时候发现多行注释了

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

 这个正则公式对多行注释完全不管用,然后尝试以下的公式

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

很显然也行不通

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

PHP多行适配简洁版

<!--((.\s)|.)*-->

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

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

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

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

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

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

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

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

目前研究的一键删注释(多行不能含有纯空行)

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

PHP单多行全适配版

<!--((.\s)|.)*-->

Javascript纯单行

//(.)*

Javascript单多行

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

Python纯单行

#(.)*

Python双引号单多行适配

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

Python单引号单多行适配

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

Java纯单行

//(.)*

Java单多行适配

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

 

HTML单多行适配

<!--((.\s)|.)*-->

总结

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

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

2024/1/27修正公式提高适配性

相关推荐

  1. 匹配/表达式

    2024-01-28 16:30:01       23 阅读
  2. Python表达式匹配中文:深入解析与实战应用

    2024-01-28 16:30:01       8 阅读
  3. 课时101:表达式_基础实践_字符匹配

    2024-01-28 16:30:01       17 阅读
  4. 课时102:表达式_基础实践_锚定匹配

    2024-01-28 16:30:01       14 阅读
  5. LeetCode-10. 表达式匹配

    2024-01-28 16:30:01       41 阅读
  6. leetCode算法—10. 表达式匹配

    2024-01-28 16:30:01       48 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-28 16:30:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-28 16:30:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-28 16:30:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-28 16:30:01       18 阅读

热门阅读

  1. postgresql 12 安装

    2024-01-28 16:30:01       36 阅读
  2. 洛谷B3625迷宫寻路

    2024-01-28 16:30:01       30 阅读
  3. 用vue写表格实现数量的加减

    2024-01-28 16:30:01       39 阅读
  4. 算法训练营Day59(单调栈2)

    2024-01-28 16:30:01       34 阅读
  5. STM32F407移植OpenHarmony笔记2

    2024-01-28 16:30:01       33 阅读
  6. 数据结构和线程池

    2024-01-28 16:30:01       33 阅读
  7. 设计模式六(模板方法模式)

    2024-01-28 16:30:01       31 阅读
  8. bash 5.2中文修订5

    2024-01-28 16:30:01       29 阅读