Heim > Artikel > Backend-Entwicklung > So entfernen Sie Kommentare mit einem regulären PHP-Ausdruck
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
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/>
Datei: 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/>
Testausgabe
Führen Sie test.php aus, die Ausgabe lautet wie folgt:
Regelmäßige Analyse
(\/\*.*\*\/) 匹配 /* */<br/>(#.*?\n) 匹配 # 遇到第一个回车后结束<br/>(\/\/.*?\n) 匹配 // 遇到第一个回车后结束<br/>
Weiter hinzufügen :
Mehrzeiliger Kommentar
<?php <br/> <br/>$s = '/*aaaa <br/>sss <br/>*/*/'; <br/> <br/>preg_match('@/\*.*?\*/@s', $s, $match); <br/> <br/>var_dump($match);<br/>
Laufergebnis
array(1) {<br/> [0]=><br/> string(15) "/*aaaa <br/>sss <br/>*/"<br/>}<br/>
einzeiliger Kommentar
<?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/>
Ausgabe
a = b; <br/>b = c;<br/>
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/>
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
^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!