Heim >Backend-Entwicklung >PHP-Problem >So entfernen Sie Kommentare aus einem regulären PHP-Ausdruck

So entfernen Sie Kommentare aus einem regulären PHP-Ausdruck

藏色散人
藏色散人Original
2021-02-25 09:43:501680Durchsuche

So entfernen Sie reguläre Kommentare in PHP: 1. Erstellen Sie eine PHP-Beispieldatei und fügen Sie den Kommentarinhalt ein. 2. Entfernen Sie die Kommentare mit der Methode „highlight_string(removeComment(file_get_contents('./a.php')));“ .

So entfernen Sie Kommentare aus einem regulären PHP-Ausdruck

Die Betriebsumgebung dieses Artikels: Windows7-System, PHP8-Version, DELL G3-Computer

Verwenden Sie reguläre Ausdrücke, um Kommentare im PHP-Code zu entfernen

Testcode

Datei: a.PHP

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

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

Testausgabe

Führen Sie test.php aus, die Ausgabe lautet wie folgt:

So entfernen Sie Kommentare aus einem regulären PHP-Ausdruck

Regelmäßige Analyse

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

Der Herausgeber dieser Website wird weiterhin Folgendes hinzufügen:

Mehrzeilige Kommentare

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

Laufende Ergebnisse

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

Übereinstimmende einzeilige Kommentare

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

Ausgabe

a = b;
b = c;

Eine weitere Lua-Version von

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

Ausgabe

/* xx */

/* y */

phpstorm Regulärer passender Kommentar Zeilen (ersetzt Kommentarzeilen mit Leerzeilen)

Die Verwendung von phpstorm zum Schreiben von PHP- und Javascript-Code fühlt sich gut an und ist angenehm zu verwenden.

Ich habe beim Lesen des Quellcodes eines Frameworks die Notwendigkeit festgestellt, die Kommentarzeilen im Quellcode manuell zu filtern (löschen), da dies nicht wissenschaftlich genug ist.

Natürlich habe ich an den leistungsstarken regulären Ausdruck (regulärer Ausdruck regExp) gedacht, mit dem wir alle Kommentarzeilen finden und durch leere ersetzen können, wodurch die Anforderung erfüllt wird.

1. Strg + F, geben Sie den regulären Ausdruck ein: (//.*$)|(/*(.|s)*?*/)

2. Strg + R, geben Sie nicht ein:

3. Klicken Sie auf „Später ersetzen“

, stellten jedoch fest, dass dies unseren Anforderungen nicht vollständig entsprach, sondern lediglich die Kommentarzeile durch eine Leerzeile ersetzte.

Also schreiben wir einen weiteren regulären Ausdruck, um leere Zeilen abzugleichen und zu löschen.

1.Strg + F, geben Sie den regulären Ausdruck ein: ^n

2.Strg + R, geben Sie nicht

3 ein, aber es wurde festgestellt, dass nicht alle Leerzeilen gelöscht wurden. (Es gibt noch einige Leerzeilen, die nicht gelöscht wurden)

Also fahren wir mit dem regulären Löschen von Übereinstimmungen fort.

1.Strg + F, geben Sie den regulären Ausdruck ein: sn

2.Strg + R, geben Sie nicht ein

3. Klicken Sie hinten auf „Alle ersetzen“.

Okay, hier löschen Sie alle Leerzeilen. Viel Spaß -:)

Eigentlich lassen sich diese drei Schritte in einem Schritt umsetzen, Sie können darüber nachdenken! [Empfohlenes Lernen: „

PHP-Video-Tutorial

“]

Das obige ist der detaillierte Inhalt vonSo entfernen Sie Kommentare aus einem regulären PHP-Ausdruck. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn