您好,登錄后才能下訂單哦!
本文將為大家詳細(xì)介紹“php正則如何去除注釋”,內(nèi)容步驟清晰詳細(xì),細(xì)節(jié)處理妥當(dāng),而小編每天都會(huì)更新不同的知識(shí)點(diǎn),希望這篇“php正則如何去除注釋”能夠給你意想不到的收獲,請(qǐng)大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識(shí)吧。
php是一個(gè)嵌套的縮寫(xiě)名稱,指的是英文超級(jí)文本預(yù)處理語(yǔ)言(php:Hypertext Preprocessor)的縮寫(xiě),它的語(yǔ)法混合了C、Java、Perl以及php自創(chuàng)新的語(yǔ)法,主要用來(lái)做網(wǎng)站開(kāi)發(fā),許多小型網(wǎng)站都用php開(kāi)發(fā),因?yàn)閜hp是開(kāi)源的,從而使得php經(jīng)久不衰。
php正則去除注釋的方法:首先創(chuàng)建好PHP示例文件并包含注釋內(nèi)容;然后通過(guò)“highlight_string(removeComment(file_get_contents('./a.php')));”方法去除注釋即可。
使用正則去除php代碼中的注釋方法
測(cè)試代碼
文件:a.PHP
<?php /** * 加法計(jì)算 * 測(cè)試 */ // 設(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)); }
測(cè)試輸出
執(zhí)行test.php,輸出如下:
正則分析
(\/\*.*\*\/) 匹配 /* */ (#.*?\n) 匹配 # 遇到第一個(gè)回車后結(jié)束 (\/\/.*?\n) 匹配 // 遇到第一個(gè)回車后結(jié)束
本站小編繼續(xù)補(bǔ)充一下:
多行注釋
<?php $s = '/*aaaa sss */*/'; preg_match('@/\*.*?\*/@s', $s, $match); var_dump($match);
運(yùn)行結(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;
再來(lái)一個(gè)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 來(lái)編寫(xiě)php 和javascript 代碼,感覺(jué)還是不錯(cuò)的,用得也很舒服。
遇到了一個(gè)需求,有時(shí)候在閱讀框架源代碼的時(shí)候 , 想過(guò)濾(刪除)掉源代碼中的注釋行,如果手動(dòng)逐行刪除顯示不夠科學(xué)。
當(dāng)然想到了強(qiáng)大的正則匹配(regExp regular expression), 通過(guò)寫(xiě)一個(gè)正則表達(dá)式,來(lái)查找出所有的注釋行,并將其替換成空,即實(shí)現(xiàn)了需求。
1. ctrl + F , 輸入正則表達(dá)式:(\/\/.*$)|(\/\*(.|\s)*?\*\/)
2. ctrl + R, 不輸入:
3. 點(diǎn)擊后面的 Replace all
但發(fā)現(xiàn),這樣并沒(méi)有完全實(shí)現(xiàn)我們的需求,只是將注釋行替換成了空行。
所以,下面我們?cè)賹?xiě)一個(gè)正則表達(dá)式, 將空行匹配出來(lái),刪掉。
1.ctrl + F, 輸入正則表達(dá)式: ^\n
2.ctrl + R, 不輸入
3.點(diǎn)擊后面的 Replace all
但發(fā)現(xiàn),還是并沒(méi)有全部刪掉空行。(還有一些空行沒(méi)刪掉)
所以,我們繼續(xù)來(lái)一個(gè)正則匹配刪除。
1.ctrl + F, 輸入正則表達(dá)式: \s\n
2.ctrl + R, 不輸入
3.點(diǎn)擊后面的 Replace all
好的,到這里,所有的空行全部刪除。
如果你能讀到這里,小編希望你對(duì)“php正則如何去除注釋”這一關(guān)鍵問(wèn)題有了從實(shí)踐層面最深刻的體會(huì),具體使用情況還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。