使用正则去除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 相关文章推荐
php HtmlReplace输入过滤安全函数
Jul 03 PHP
解析百度搜索结果link?url=参数分析 (全)
Oct 09 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
Feb 16 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
Jun 14 PHP
利用curl 多线程 模拟 并发的详解
Jun 14 PHP
PHP三元运算的2种写法代码实例
May 12 PHP
配置Nginx+PHP的正确思路与过程
May 10 PHP
php生成Android客户端扫描可登录的二维码
May 13 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
Jul 09 PHP
php实现博客,论坛图片防盗链的方法
Oct 15 PHP
PHP获取文本框、密码域、按钮的值实例代码
Apr 19 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 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
桌面中心(四)数据显示
2006/10/09 PHP
PHP MSSQL 存储过程的方法
2008/12/24 PHP
yii用户注册表单验证实例
2015/12/26 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
Laravel框架文件上传功能实现方法示例
2019/04/16 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
JavaScript经典效果集锦
2010/07/06 Javascript
php跨域调用json的例子
2013/11/13 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
2014/11/02 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
2016/10/26 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
2017/01/05 Javascript
javascript 中事件冒泡和事件捕获机制的详解
2017/09/01 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
Python greenlet实现原理和使用示例
2014/09/24 Python
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
学习python可以干什么
2019/02/26 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
关于TensorFlow新旧版本函数接口变化详解
2020/02/10 Python
Foreo国际站:Foreo International
2018/10/29 全球购物
中文系师范生自荐信
2013/10/01 职场文书
化妆品促销方案
2014/02/24 职场文书
房地产项目建议书
2014/03/12 职场文书
广告学专业求职信
2014/06/19 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
话题作文之关于呼唤
2019/11/29 职场文书