ホームページ >バックエンド開発 >PHPの問題 >PHPの正規表現からコメントを削除する方法

PHPの正規表現からコメントを削除する方法

藏色散人
藏色散人オリジナル
2021-02-25 09:43:501681ブラウズ

php コメントを削除する通常の方法: 1. PHP サンプル ファイルを作成し、コメントの内容を含めます; 2. "highlight_string(removeComment(file_get_contents('./a.php'))); を通じてコメントを削除します。 「メソッド」それだけです。

PHPの正規表現からコメントを削除する方法

#この記事の動作環境: Windows7 システム、PHP8 バージョン、DELL G3 コンピューター

コメントを削除するには正規表現を使用しますPHP コード

テスト コード

ファイル: a.PHP

<?php
/**
 * 加法计算
 * 测试
 */
// 设定$a的值
$a = 10;
// 设定$b的值
$b = 5;
// 加法
$c = $a + $b;
# 输出结果
echo $c;

ファイル: test.php

echo "源码:<br />";
show_source(&#39;./a.php&#39;);
echo "<hr />去除注释后:<br />";
highlight_string(removeComment(file_get_contents(&#39;./a.php&#39;)));
 
/**
 * 去除PHP代码注释
 * @param string $content 代码内容
 * @return string 去除注释之后的内容
 */
function removeComment($content){
 return preg_replace("/(\/\*.*\*\/)|(#.*?\n)|(\/\/.*?\n)/s", &#39;&#39;, str_replace(array("\r\n", "\r"), "\n", $content));
}

テスト出力

test .php を実行すると、出力は次のようになります:

PHPの正規表現からコメントを削除する方法

定期的な分析

(\/\*.*\*\/) 匹配 /* */
(#.*?\n)  匹配 #  遇到第一个回车后结束
(\/\/.*?\n) 匹配 //  遇到第一个回车后结束

このサイトの編集者は引き続き次の内容を追加します:

複数行コメント

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

実行結果

array(1) {
 [0]=>
 string(15) "/*aaaa
sss
*/"
}

単一行コメントの一致

<?php
$str = " 
a = b; //asdf //saf
b = c; //asdf
  ";
$reg = &#39;@\s*//.*$@m&#39;;
  
$res = preg_replace($reg,&#39;&#39;,$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

Output

/* xx */

/* y */

phpstorm の通常の一致によりコメント行が削除されます (コメント行が空行に置き換えられます)

phpstorm を使用して php および javascript コードを記述します。感触が良く、非常に快適に使用できます。

ニーズに遭遇しました。フレームワークのソースコードを読んでいるときに、ソースコード内のコメント行をフィルタリング (削除) したいことがあります。手動で 1 行ずつ削除すると、科学的ではなくなります。十分。

もちろん、強力な正規表現 (regExp 正規表現) を考えましたが、正規表現を記述することで、すべてのコメント行を見つけて空の行に置き換えることができ、要件を達成できます。

1. Ctrl F を押して、正規表現を入力します: (\/\/.*$)|(\/\*(.|\s)*?\*\/)

2. Ctrl R を押しながら「

3」と入力しないでください:

3. [すべて置換]

をクリックしますが、これは私たちのニーズを完全には実現しておらず、コメント行を空行に置き換えただけであることがわかりました。

それでは、空白行に一致する別の正規表現を作成して、空白行を削除しましょう。

1.ctrl F、正規表現を入力します: ^\n

2.ctrl R、

3 は入力しないでください。 [すべて置換] をクリックします

#しかし、すべての空白行が削除されたわけではないことがわかりました。 (まだ削除されていない空行がいくつかあります)

それでは、通常の一致削除を続けてみましょう。

1.ctrl F、正規表現を入力します: \s\n

2.ctrl R、

3 は入力しないでください。 [すべて置換] をクリックします

OK、ここですべての空白行を削除します。楽しんでください -:)

実際、これら 3 つのステップは 1 つのステップで実装できます。考えてみてください。 [推奨学習:「PHP ビデオ チュートリアル 」]

以上がPHPの正規表現からコメントを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。