用正则表达式进行代码规范检查之一行的结尾不要有空格
用正则表达式进行代码规范检查之一行的结尾不要有空格
代码规范性检查是软件开发的编码阶段必不可少的一项工作。很多公司都有一套完整的代码规范性检查的系统,可以进行代码批量自动检查的。但那都是所谓的别人家公司的系统,自己是用不上的。
前段时间我在看别人代码,发现了一些问题,其中有一个问题就是一行的结尾不是(回车)换行符,而是经过若干空格之后才是(回车)换行。是在搞不懂为什么在(回车)换行之前非得加上N个没用的空格。
当时目视是检查上述问题的方法之一,但对于大规模篇幅的代码来说,显然这不是好办法。因此我想要一个让程序来自动挑出问题所在行。
基于上述背景,正则表达式可以派上用场了。基本大部分文本编辑器都有正则表达式语法搜索的功能。
经过短暂地对正则表达式的学习和了解,写出了下面这个正则表达式来匹配代码一行(回车)换行前的N个空格。
.* +\r*\n
经过测试发现还有一种情况没有被匹配出来,那就是有些人在结尾后没有空格,而是一些tab键的空白之后是才(回车)换行的。
针对此种情况,则可以用到下面或的正则表达式来匹配。
.*[ \t]+\r*\n
最后,为了以后方便维护这个正则表达式,简单地对其做一下注释说明。
.*:匹配任意字符
[ \t]+:匹配至少一个空格或tab符
\r*\n:结尾是(回车)换行符。
\r*:可以没有回车符(Unix系列系统是直接换行的)
\n:以换行符结尾
文末,不足之处,望指出。