使用正则去除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版(1)
Oct 09 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
php输出xml格式字符串(用的这个)
Jul 12 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
PHP命名空间(namespace)的动态访问及使用技巧
Aug 18 PHP
php一行代码获取文件后缀名实例分析
Nov 12 PHP
ThinkPHP添加更新标签的方法
Dec 05 PHP
PHP利用imagick生成组合缩略图
Feb 19 PHP
PHP+iframe图片上传实现即时刷新效果
Nov 18 PHP
yii2学习教程之5种内置行为类详解
Aug 03 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
laravel自定义分页的实现案例offset()和limit()
Oct 15 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 开发环境配置(测试开发环境)
2010/04/28 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
Zend Framework框架路由机制代码分析
2016/03/22 PHP
php无限级分类实现方法分析
2016/10/19 PHP
JavaScript 学习笔记(四)
2009/12/31 Javascript
数组Array进行原型prototype扩展后带来的for in遍历问题
2010/02/07 Javascript
浅说js变量
2011/05/25 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
2014/04/25 Javascript
jQuery实现两个select控件的互移操作
2016/12/22 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
python 求10个数的平均数实例
2019/12/16 Python
基于python监控程序是否关闭
2020/01/14 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
广州迈达威.net面试题目
2012/03/10 面试题
写好自荐信的技巧
2013/11/08 职场文书
配件采购员岗位职责
2013/12/03 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
中小企业员工手册范本
2015/05/14 职场文书
时尚女魔头观后感
2015/06/04 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python