Maison >développement back-end >Problème PHP >Comment supprimer des commentaires via une expression régulière php

Comment supprimer des commentaires via une expression régulière php

藏色散人
藏色散人original
2020-10-07 01:04:042301parcourir

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é

Comment supprimer des commentaires via une expression régulière php

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(&#39;./a.php&#39;);<br/>echo "<hr />去除注释后:<br />";<br/>highlight_string(removeComment(file_get_contents(&#39;./a.php&#39;)));<br/><br/>/**<br/> * 去除PHP代码注释<br/> * @param string $content 代码内容<br/> * @return string 去除注释之后的内容<br/> */<br/>function removeComment($content){<br/> return preg_replace("/(\/\*.*\*\/)|(#.*?\n)|(\/\/.*?\n)/s", &#39;&#39;, 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 = &#39;/*aaaa <br/>sss <br/>*/*/&#39;; <br/> <br/>preg_match(&#39;@/\*.*?\*/@s&#39;, $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 = &#39;@\s*//.*$@m&#39;; <br/> <br/>$res = preg_replace($reg,&#39;&#39;,$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

^n3. 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

D'accord, ici, 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 !

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