使用正则去除php代码中的注释方法


Posted in PHP onNovember 03, 2016

测试代码

文件:a.PHP

<?php
/**
 * 加法计算
 * 测试
 */
// 设定$a的值
$a = 10;
// 设定$b的值
$b = 5;
// 加法
$c = $a + $b;
# 输出结果
echo $c;

文件:test.php

echo "源码:<br />";
show_source('./a.php');
echo "<hr />去除注释后:<br />";
highlight_string(removeComment(file_get_contents('./a.php')));

/**
 * 去除PHP代码注释
 * @param string $content 代码内容
 * @return string 去除注释之后的内容
 */
function removeComment($content){
 return preg_replace("/(\/\*.*\*\/)|(#.*?\n)|(\/\/.*?\n)/s", '', str_replace(array("\r\n", "\r"), "\n", $content));
}

测试输出

执行test.php,输出如下:

使用正则去除php代码中的注释方法

正则分析

(\/\*.*\*\/) 匹配 /* */
(#.*?\n)  匹配 #  遇到第一个回车后结束
(\/\/.*?\n) 匹配 //  遇到第一个回车后结束

三水点靠木小编继续补充一下:

多行注释

<?php 
 
$s = '/*aaaa 
sss 
*/*/'; 
 
preg_match('@/\*.*?\*/@s', $s, $match); 
 
var_dump($match);

运行结果

array(1) {
 [0]=>
 string(15) "/*aaaa 
sss 
*/"
}

匹配单行注释

<?php 
$str = "  
a = b; //asdf //saf 
b = c; //asdf 
  "; 
$reg = '@\s*//.*$@m'; 
 
$res = preg_replace($reg,'',$str); 
 
echo $res;

输出

a = b; 
b = c;

再来一个lua版的

local test = "int x; /* xx */ xx*/ int y; /* y */" 
 
function string.gfind(test, patten) 
 local i,j = 0,0; 
 return function() 
  i,j = string.find(test, patten, j+1) 
  if(i == nil) then -- end find 
   return nil  
  end  
  return string.sub(test, i, j) 
 end  
end 
 
 
for v in string.gfind(test, "/%*.-%*/") do 
 print(v) 
end

输出
/* xx */
/* y */

phpstorm 正则匹配删除注释行(替换注释行为空行)

使用phpstorm 来编写php 和javascript 代码,感觉还是不错的,用得也很舒服。

遇到了一个需求,有时候在阅读框架源代码的时候 , 想过滤(删除)掉源代码中的注释行,如果手动逐行删除显示不够科学。

当然想到了强大的正则匹配(regExp regular expression), 通过写一个正则表达式,来查找出所有的注释行,并将其替换成空,即实现了需求。

1. ctrl + F , 输入正则表达式:(\/\/.*$)|(\/\*(.|\s)*?\*\/)

2. ctrl + R, 不输入:

3. 点击后面的 Replace all

但发现,这样并没有完全实现我们的需求,只是将注释行替换成了空行。

所以,下面我们再写一个正则表达式, 将空行匹配出来,删掉。

1.ctrl + F, 输入正则表达式: ^\n

2.ctrl + R, 不输入

3.点击后面的 Replace all

但发现,还是并没有全部删掉空行。(还有一些空行没删掉)

所以,我们继续来一个正则匹配删除。

1.ctrl + F, 输入正则表达式: \s\n

2.ctrl + R, 不输入

3.点击后面的 Replace all

好的,到这里,所有的空行全部删除。 开心一下 -:)

其实,这三步应该可以合成一步实现的,大家可以想一想!

以上就是小编为大家带来的使用正则去除php代码中的注释方法全部内容了,希望大家多多支持三水点靠木~

PHP 相关文章推荐
mayfish 数据入库验证代码
Apr 30 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
Apr 10 PHP
单台服务器的PHP进程之间实现共享内存的方法
Jun 13 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
Mar 19 PHP
php使用curl打开https网站的方法
Jun 17 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
Oct 21 PHP
php使用curl通过代理获取数据的实现方法
May 16 PHP
laravel ORM 只开启created_at的几种方法总结
Jan 29 PHP
原生php实现excel文件读写的方法分析
Apr 25 PHP
PHP中Static(静态)关键字功能与用法实例分析
Apr 05 PHP
php函数式编程简单示例
Aug 08 PHP
php cookie 详解使用实例
Nov 03 #PHP
PHP使用curl制作简易百度搜索
Nov 03 #PHP
php 防止表单重复提交两种实现方法
Nov 03 #PHP
PHP HTTP 认证实例详解
Nov 03 #PHP
php将print_r处理后的数据还原为原始数组的解决方法
Nov 02 #PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 #PHP
php 使用redis锁限制并发访问类示例
Nov 02 #PHP
You might like
PHP 批量删除数据的方法分析
2009/10/30 PHP
PHP 中检查或过滤IP地址的实现代码
2011/11/27 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
Javascript 面向对象 重载
2010/05/13 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
Javascript实现网络监测的方法
2015/07/31 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
2016/12/17 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
python使用marshal模块序列化实例
2014/09/25 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
python去除文件中重复的行实例
2018/06/29 Python
使用python获取(宜宾市地震信息)地震信息
2019/06/20 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
一份全面的PHP面试问题考卷
2012/07/15 面试题
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
中国央视网签名寄语
2014/01/18 职场文书
服务口号大全
2014/06/11 职场文书
大专毕业生求职信
2014/07/05 职场文书
学校教师安全责任书
2014/07/23 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
使用css样式设计一个简单的html登陆界面的实现
2021/03/30 HTML / CSS
详解pytorch创建tensor函数
2022/03/22 Python