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

藏色散人
Libérer: 2023-03-06 13:26:01
original
2269 Les gens l'ont consulté

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/>
Copier après la connexion

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/>
Copier après la connexion

Sortie du test

Exécutez test.php, la sortie est la suivante :

Analyse régulière

(\/\*.*\*\/) 匹配 /* */<br/>(#.*?\n)  匹配 #  遇到第一个回车后结束<br/>(\/\/.*?\n) 匹配 //  遇到第一个回车后结束<br/>
Copier après la connexion

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/>
Copier après la connexion

Résultats en cours

array(1) {<br/> [0]=><br/> string(15) "/*aaaa <br/>sss <br/>*/"<br/>}<br/>
Copier après la connexion

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/>
Copier après la connexion

sortie

a = b; <br/>b = c;<br/>
Copier après la connexion

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/>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal