Maison > Article > développement back-end > Comment supprimer les commentaires de l'expression régulière php
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.
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('./a.php'); echo "<hr />去除注释后:<br />"; highlight_string(removeComment(file_get_contents('./a.php'))); /** * 去除PHP代码注释 * @param string $content 代码内容 * @return string 去除注释之后的内容 */ function removeComment($content){ return preg_replace("/(\/\*.*\*\/)|(#.*?\n)|(\/\/.*?\n)/s", '', str_replace(array("\r\n", "\r"), "\n", $content)); }
Sortie du test
Exécutez test .php, le résultat est le suivant :
Analyse régulière
(\/\*.*\*\/) 匹配 /* */ (#.*?\n) 匹配 # 遇到第一个回车后结束 (\/\/.*?\n) 匹配 // 遇到第一个回车后结束
L'éditeur de ce site continuera d'ajouter :
Commentaires sur plusieurs lignes
<?php $s = '/*aaaa sss */*/'; preg_match('@/\*.*?\*/@s', $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 = '@\s*//.*$@m'; $res = preg_replace($reg,'',$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 : sn2.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!