Maison  >  Article  >  développement back-end  >  Comment supprimer les commentaires de l'expression régulière php

Comment supprimer les commentaires de l'expression régulière php

藏色散人
藏色散人original
2021-02-25 09:43:501628parcourir

Comment supprimer les commentaires réguliers en PHP : 1. Créez un exemple de fichier PHP et incluez le contenu du commentaire ; 2. Supprimez les commentaires via "highlight_string(removeComment(file_get_contents('./a.php'))) ;" méthode C'est tout.

Comment supprimer les commentaires de l'expression régulière php

L'environnement d'exploitation de cet article : système Windows7, version PHP8, ordinateur DELL G3

Utilisez des expressions régulières pour supprimer les commentaires dans code php

Code de test

Fichier : a.PHP

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

Fichier : 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));
}

Sortie du test

Exécutez test .php, le résultat est le suivant :

Comment supprimer les commentaires de lexpression régulière php

Analyse régulière

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

L'éditeur de ce site continuera d'ajouter :

Commentaires sur plusieurs lignes

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

Exécuter le résultat

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

Faire correspondre le commentaire sur une seule ligne

<?php
$str = " 
a = b; //asdf //saf
b = c; //asdf
  ";
$reg = &#39;@\s*//.*$@m&#39;;
  
$res = preg_replace($reg,&#39;&#39;,$str);
  
echo $res;

Sortie

a = b;
b = c;

Une autre version Lua de

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

Sortie

/* xx */

/* y */

la correspondance régulière de phpstorm supprime les lignes de commentaires (remplace les lignes de commentaires par des lignes vides)

Utilisez phpstorm pour écrire du code php et javascript, cela fait du bien et est très confortable à utiliser.

J'ai rencontré un besoin. Parfois lors de la lecture du code source d'un framework, je souhaite filtrer (supprimer) les lignes de commentaires dans le code source. Si je le supprime manuellement ligne par ligne, ce ne sera pas scientifique. assez.

Bien sûr, j'ai pensé à la puissante expression régulière (expression régulière regExp). En écrivant une expression régulière, nous pouvons retrouver toutes les lignes de commentaires et les remplacer par des lignes vides, ce qui répond à l'exigence.

1. ctrl + F , saisissez l'expression régulière : (//.*$)|(/*(.|s)*?*/)

2. N'entrez pas :

3. Cliquez sur Remplacer tout

mais constatez que cela ne répond pas pleinement à nos besoins, cela remplace simplement la ligne de commentaire par une ligne vide.

Alors, écrivons une autre expression régulière pour faire correspondre les lignes vides et supprimons-les.

1.ctrl + F, saisissez l'expression régulière : ^n

2.ctrl + R, ne saisissez pas

3. Cliquez sur Remplacer tout

Mais j'ai constaté que toutes les lignes vides n'étaient pas supprimées. (Il reste encore quelques lignes vides qui n'ont pas été supprimées)

Alors, continuons avec la suppression régulière des correspondances.

1.ctrl + F, saisissez l'expression régulière : sn

2.ctrl + R, ne saisissez pas

3 Cliquez sur Remplacer tout

. Bon, c'est parti, supprimez toutes les lignes vides. Amusez-vous -:)

En fait, ces trois étapes peuvent être mises en œuvre en une seule étape, vous pouvez y penser ! [Apprentissage recommandé : "

Tutoriel vidéo PHP"]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn