使用正则去除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 相关文章推荐
用header 发送cookie的php代码
Mar 16 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
PHP XML数据解析代码
May 26 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
Nov 07 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
PHP加密函数 Javascript/Js 解密函数
Sep 23 PHP
php读取3389的脚本
May 06 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
Mar 21 PHP
PHP实现JS中escape与unescape的方法
Jul 11 PHP
PHP自定义函数格式化json数据示例
Sep 14 PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 PHP
php查询内存信息操作示例
May 09 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 随机生成10位字符代码
2009/03/26 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
php短信接口代码
2016/05/13 PHP
PHP类型约束用法示例
2016/09/28 PHP
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
js仿腾讯QQ的web登陆界面
2016/08/19 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
js实现简单的倒计时
2021/01/28 Javascript
[56:18]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第二局
2016/03/05 DOTA
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
python mysql中in参数化说明
2020/06/05 Python
python如何实现DES加密
2020/09/21 Python
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
遗体告别仪式答谢词
2014/01/23 职场文书
中国梦读书活动总结
2014/07/10 职场文书
2015年派出所民警工作总结
2015/04/24 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书