亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    如何通過php正則去掉注釋

    php正則去掉注釋的實(shí)現(xiàn)方法:首先創(chuàng)建PHP示例文件;然后通過正則表達(dá)式“reg_replace("/(/*.**/)|(#.*?n)|(//.*?n)/s", '', str_replace((…))”實(shí)現(xiàn)去除即可。

    如何通過php正則去掉注釋

    推薦:《PHP視頻教程》

    測試代碼

    文件:a.PHP

    <?php
    /**
    * 加法計(jì)算
    * 測試
    */
    // 設(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("rn", "r"), "n", $content));
    }

    測試輸出

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

    如何通過php正則去掉注釋

    正則分析

    (/*.**/) 匹配 /* */
    (#.*?n) 匹配 # 遇到第一個回車后結(jié)束
    (//.*?n) 匹配 // 遇到第一個回車后結(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;

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

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

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

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

    2. ctrl + R, 不輸入:

    3. 點(diǎn)擊后面的 Replace all

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

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

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

    2.ctrl + R, 不輸入

    3.點(diǎn)擊后面的 Replace all

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

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

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

    2.ctrl + R, 不輸入

    3.點(diǎn)擊后面的 Replace all

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

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

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號