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

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

藏色散人
Freigeben: 2023-03-06 13:26:01
Original
2307 Leute haben es durchsucht

So implementieren Sie das Entfernen regulärer PHP-Kommentare: Erstellen Sie zunächst eine PHP-Beispieldatei. Verwenden Sie dann den regulären Ausdruck „reg_replace(“/(/*.**/)|(#.*?n)|(//.*?“ n )/s“, '', str_replace((...))“ kann entfernt werden

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

Empfohlen: „PHP-Video-Tutorial

Testcode

Datei: 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/>
Nach dem Login kopieren

Datei: 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/>
Nach dem Login kopieren

Testausgabe

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

Regelmäßige Analyse

(\/\*.*\*\/) 匹配 /* */<br/>(#.*?\n)  匹配 #  遇到第一个回车后结束<br/>(\/\/.*?\n) 匹配 //  遇到第一个回车后结束<br/>
Nach dem Login kopieren

Weiter hinzufügen :

Mehrzeiliger Kommentar

<?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/>
Nach dem Login kopieren

Laufergebnis

array(1) {<br/> [0]=><br/> string(15) "/*aaaa <br/>sss <br/>*/"<br/>}<br/>
Nach dem Login kopieren

einzeiliger Kommentar

<?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/>
Nach dem Login kopieren

Ausgabe

a = b; <br/>b = c;<br/>
Nach dem Login kopieren

Eine weitere Lua-Version von

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/>
Nach dem Login kopieren

Ausgabe
/* xx */
/* y */

phpstorm reguläres Matching um die Kommentarzeile zu löschen (Ersetzen Sie die Kommentarzeile durch eine Leerzeile)

Es fühlt sich gut an, PHPstorm zum Schreiben von PHP- und Javascript-Code zu verwenden, und es ist sehr komfortabel zu verwenden

Ich bin manchmal auf ein Bedürfnis gestoßen, als ich die Quelle gelesen habe Im Code des Frameworks möchte ich die Kommentarzeilen im Quellcode filtern (löschen). Wenn das manuelle Löschen Zeile für Zeile nicht wissenschaftlich genug ist, habe ich natürlich an den leistungsstarken regulären Ausdruck (regulärer Ausdruck regExp) gedacht, um alle Kommentare zu finden Zeilen und ersetzen Sie es durch leer, um die Anforderung zu erfüllen

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

2. Strg + R, nicht eingeben: :(//.*$)|(/*(.|s)*?*/)

2. ctrl + R, 不输入:

3. 点击后面的 Replace all

但发现,这样并没有完全实现我们的需求,只是将注释行替换成了空行。

所以,下面我们再写一个正则表达式, 将空行匹配出来,删掉。

1.ctrl + F, 输入正则表达式: ^n

2.ctrl + R, 不输入

3.点击后面的 Replace all

但发现,还是并没有全部删掉空行。(还有一些空行没删掉)

所以,我们继续来一个正则匹配删除。

1.ctrl + F, 输入正则表达式: sn

3. Klicken Sie auf Alle ersetzen

, aber wir haben festgestellt, dass dies nicht vollständig unseren Anforderungen entsprach, sondern nur die Kommentarzeile durch eine Leerzeile ersetzt hat

Als nächstes Schreiben Sie einen weiteren regulären Ausdruck, der den Leerzeilen entspricht, und löschen Sie sie

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

2.Strg + R, geben Sie ihn nicht ein 3. Klicken Sie auf „Alle ersetzen“, aber es wurde festgestellt, dass nicht alle Leerzeilen gelöscht wurden (es gibt immer noch einige Leerzeilen, die nicht gelöscht wurden). Fahren wir also mit einer regulären Übereinstimmung zum Löschen fort 🎜🎜1.Strg + F , geben Sie den regulären Ausdruck ein: sn 🎜🎜2.Strg + R, geben Sie nicht 🎜🎜3 ein. Klicken Sie hier, um alle Leerzeilen zu löschen 🎜Eigentlich können diese drei Schritte in einem Schritt umgesetzt werden, Sie können darüber nachdenken! 🎜

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage