欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用正則去除php代碼中的注釋方法

 更新時間:2016年11月03日 09:11:40   投稿:jingxian  
下面小編就為大家?guī)硪黄褂谜齽t去除php代碼中的注釋方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

測試代碼

文件:a.PHP

<?php
/**
 * 加法計算
 * 測試
 */
// 設(shè)定$a的值
$a = 10;
// 設(shè)定$b的值
$b = 5;
// 加法
$c = $a + $b;
# 輸出結(jié)果
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 代碼內(nèi)容
 * @return string 去除注釋之后的內(nèi)容
 */
function removeComment($content){
 return preg_replace("/(\/\*.*\*\/)|(#.*?\n)|(\/\/.*?\n)/s", '', str_replace(array("\r\n", "\r"), "\n", $content));
}

測試輸出

執(zhí)行test.php,輸出如下:

正則分析

(\/\*.*\*\/) 匹配 /* */
(#.*?\n)  匹配 #  遇到第一個回車后結(jié)束
(\/\/.*?\n) 匹配 //  遇到第一個回車后結(jié)束

腳本之家小編繼續(xù)補充一下:

多行注釋

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

運行結(jié)果

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 代碼,感覺還是不錯的,用得也很舒服。

遇到了一個需求,有時候在閱讀框架源代碼的時候 , 想過濾(刪除)掉源代碼中的注釋行,如果手動逐行刪除顯示不夠科學(xué)。

當(dāng)然想到了強大的正則匹配(regExp regular expression), 通過寫一個正則表達(dá)式,來查找出所有的注釋行,并將其替換成空,即實現(xiàn)了需求。

1. ctrl + F , 輸入正則表達(dá)式:(\/\/.*$)|(\/\*(.|\s)*?\*\/)

2. ctrl + R, 不輸入:

3. 點擊后面的 Replace all

但發(fā)現(xiàn),這樣并沒有完全實現(xiàn)我們的需求,只是將注釋行替換成了空行。

所以,下面我們再寫一個正則表達(dá)式, 將空行匹配出來,刪掉。

1.ctrl + F, 輸入正則表達(dá)式: ^\n

2.ctrl + R, 不輸入

3.點擊后面的 Replace all

但發(fā)現(xiàn),還是并沒有全部刪掉空行。(還有一些空行沒刪掉)

所以,我們繼續(xù)來一個正則匹配刪除。

1.ctrl + F, 輸入正則表達(dá)式: \s\n

2.ctrl + R, 不輸入

3.點擊后面的 Replace all

好的,到這里,所有的空行全部刪除。 開心一下 -:)

其實,這三步應(yīng)該可以合成一步實現(xiàn)的,大家可以想一想!

以上就是小編為大家?guī)淼氖褂谜齽t去除php代碼中的注釋方法全部內(nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

最新評論