Maison >développement back-end >Problème PHP >Comment supprimer des commentaires via une expression régulière php
Comment implémenter la suppression régulière des commentaires PHP : créez d'abord un exemple de fichier PHP ; puis utilisez l'expression régulière "reg_replace("/(/*.**/)|(#.*?n)|(/ / .*?n)/s", '', str_replace((...))" peut être supprimé
Recommandé : ". Tutoriel vidéo PHP》
Code de test
Fichier : a.PHP
<?php<br/>/**<br/> * 加法计算<br/> * 测试<br/> */<br/>// 设定$a的值<br/>$a = 10;<br/>// 设定$b的值<br/>$b = 5;<br/>// 加法<br/>$c = $a + $b;<br/># 输出结果<br/>echo $c;<br/>
Fichier : test.php
echo "源码:<br />";<br/>show_source('./a.php');<br/>echo "<hr />去除注释后:<br />";<br/>highlight_string(removeComment(file_get_contents('./a.php')));<br/><br/>/**<br/> * 去除PHP代码注释<br/> * @param string $content 代码内容<br/> * @return string 去除注释之后的内容<br/> */<br/>function removeComment($content){<br/> return preg_replace("/(\/\*.*\*\/)|(#.*?\n)|(\/\/.*?\n)/s", '', str_replace(array("\r\n", "\r"), "\n", $content));<br/>}<br/>
Sortie du test
Exécutez test.php, la sortie est la suivante :
Analyse régulière
(\/\*.*\*\/) 匹配 /* */<br/>(#.*?\n) 匹配 # 遇到第一个回车后结束<br/>(\/\/.*?\n) 匹配 // 遇到第一个回车后结束<br/>
Continuer à ajouter :
Commentaires multilignes
<?php <br/> <br/>$s = '/*aaaa <br/>sss <br/>*/*/'; <br/> <br/>preg_match('@/\*.*?\*/@s', $s, $match); <br/> <br/>var_dump($match);<br/>
Résultats en cours
array(1) {<br/> [0]=><br/> string(15) "/*aaaa <br/>sss <br/>*/"<br/>}<br/>
Faire correspondre les commentaires sur une seule ligne
<?php <br/>$str = " <br/>a = b; //asdf //saf <br/>b = c; //asdf <br/> "; <br/>$reg = '@\s*//.*$@m'; <br/> <br/>$res = preg_replace($reg,'',$str); <br/> <br/>echo $res;<br/>
sortie
a = b; <br/>b = c;<br/>
et une autre version Lua de
local test = "int x; /* xx */ xx*/ int y; /* y */" <br/> <br/>function string.gfind(test, patten) <br/> local i,j = 0,0; <br/> return function() <br/> i,j = string.find(test, patten, j+1) <br/> if(i == nil) then -- end find <br/> return nil <br/> end <br/> return string.sub(test, i, j) <br/> end <br/>end <br/> <br/> <br/>for v in string.gfind(test, "/%*.-%*/") do <br/> print(v) <br/>end<br/>
sortie
/* xx */
/* y */
La correspondance régulière de phpstorm supprime les lignes de commentaires (remplace les lignes de commentaires par des lignes vides)
Utiliser phpstorm pour écrire du code php et javascript, c'est bien et très confortable à utiliser.>
J'ai rencontré une exigence. Parfois, lors de la lecture du code source d'un framework, je souhaite filtrer (supprimer) les lignes de commentaires dans le code source. Si la suppression manuelle ligne par ligne n'est pas assez scientifique,Bien sûr que j'y ai pensé. Expression régulière puissante (expression régulière regExp), en écrivant une expression régulière pour trouver toutes les lignes de commentaires et les remplacer par des vides, l'exigence est remplie
1. F, entrez. Expression régulière
:(//.*$)|(/*(.|s)*?*/)
2. ctrl + R, n'entrez pas :
3. Cliquez sur Remplacer tout
mais j'ai constaté que cela n'était pas pleinement réalisé. notre L'exigence est de remplacer la ligne de commentaire par une ligne vide. Alors, écrivons une autre expression régulière pour correspondre à la ligne vide et supprimons-la
1.ctrl + F, Entrez l'expression régulière :
. 2.ctrl + R, n'entrez pas^n
3. Cliquez sur Remplacer tout à l'arrière
mais j'ai constaté que toutes n'étaient pas supprimées (il y a encore des lignes vides. quelques lignes vides qui n'ont pas été supprimées)
Alors, continuons avec une correspondance régulière et supprimons-la
1.ctrl + F, entrez l'expression régulière :
<.>2.ctrl + R, n'entrez pas
3. Cliquez sur Remplacer tout à l'arrière sn
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!