检索代码中的纯英文注释
- 问题分析
(1)检索需要跨行
(2)检索内容是包含\t\n\r和字符’0’-’~'之间的ascii码
(3)检索工具使用grep(notepad++/source insight携带的正则式工具很难完成跨行匹配) - 解决方法
(1)修改linux编码为en_US,使用grep就不会匹配到中文,但可能出现乱码和误匹配
(2)直接检索ascii码(推荐) - 实施方法
使用grep,并使用Perl正则式,其他流派正则式在书写上可能有一定差异。
-P:使用Perl正则式
-z:跨行匹配
-o:只输出匹配到的内容
-n:输出行号
(1)匹配ascii码正则式:
/**/型注释匹配:/\*[\t\n\r -.0-~]+\*/
//型注释匹配://[\t\n\r -~]+$
(2)多行纯英文注释检索(/**/型注释)
grep -Pzon "/\*[\t\n\r -.0-~]+\*/"
注:因受贪婪匹配的影响,所匹配的英文注释内容不包含’/'字符。
(3)单行纯英文注释检索(//型注释)
grep -Pn "//[\t\n\r -~]+$"