使用正则去除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函数
Oct 09 PHP
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
May 24 PHP
php更新mysql后获取影响的行数发生异常解决方法
Mar 28 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 PHP
限制ckeditor上传图片文件大小的方法
Nov 15 PHP
php顺序查找和二分查找示例
Mar 27 PHP
php中的动态调用实例分析
Jan 07 PHP
php中stdClass的用法分析
Feb 27 PHP
PHP生成随机字符串(3种方法)
Sep 25 PHP
PHP微信红包生成代码分享
Oct 06 PHP
php提高脚本性能的4个技巧
Aug 18 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
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
11个PHPer必须要了解的编程规范
2014/09/22 PHP
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
纯js实现瀑布流布局及ajax动态新增数据
2016/04/07 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
Angular实现响应式表单
2017/08/04 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
Django框架会话技术实例分析【Cookie与Session】
2019/05/24 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
达拉斯牛仔官方商店:Dallas Cowboys Pro Shop
2018/02/10 全球购物
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
文员自我评价怎么写
2013/09/19 职场文书
安全生产标语
2014/06/06 职场文书
小学教师师德整改措施
2014/09/29 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
停车场管理协议书范本
2014/10/08 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
《分数乘法》教学反思
2016/02/24 职场文书