Home > Backend Development > PHP Problem > How to remove comments through php regular expression

How to remove comments through php regular expression

藏色散人
Release: 2023-03-06 13:26:01
Original
2307 people have browsed it

How to implement regular comment removal in php: first create a PHP sample file; then use the regular expression "reg_replace("/(\/\*.*\*\/)|(#.*?\n )|(\/\/.*?\n)/s", '', str_replace((...))" can be removed.

How to remove comments through php regular expression

Recommended: "PHP Video Tutorial"

Test Code

File: 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/>
Copy after login

File: 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/>
Copy after login

Test output

Execute test.php, the output is as follows:

Regular analysis

(\/\*.*\*\/) 匹配 /* */<br/>(#.*?\n)  匹配 #  遇到第一个回车后结束<br/>(\/\/.*?\n) 匹配 //  遇到第一个回车后结束<br/>
Copy after login

Continue to add:

Multi-line comments

<?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/>
Copy after login

Run Result

array(1) {<br/> [0]=><br/> string(15) "/*aaaa <br/>sss <br/>*/"<br/>}<br/>
Copy after login

Match single line comment

<?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/>
Copy after login

Output

a = b; <br/>b = c;<br/>
Copy after login

Another Lua version

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/>
Copy after login

Output
/* xx */
/* y */

phpstorm regular matching deletes comment lines (replaces comment lines with blank lines)

It feels good to use phpstorm to write php and javascript code. It is also very comfortable to use.

I encountered a need. Sometimes when reading the source code of the framework, I want to filter (delete) the comment lines in the source code. If I delete it manually line by line, it will not be scientific enough.

Of course, I thought of the powerful regular expression (regExp regular expression). By writing a regular expression, we can find all the comment lines and replace them with empty ones, which achieves the requirement.

1. ctrl F , enter the regular expression : (\/\/.*$)|(\/\*(.|\s)*?\*\/)

2. ctrl R, do not enter:

3. Click Replace all

but found that this did not fully realize our needs, but only replaced the comment line with a blank line.

So, let’s write another regular expression to match the blank lines and delete them.

1.ctrl F, enter the regular expression: ^\n

2.ctrl R, do not enter

3. Click Replace all

but found that not all blank lines were deleted. (There are still some blank lines The line is not deleted)

So, let’s continue with a regular match to delete.

1.ctrl F, enter the regular expression: \s\n

2.ctrl R, do not enter

3. Click Replace all

Okay, here, delete all the blank lines. Have fun -:)

Actually, these three steps can be implemented in one step, you can think about it!

The above is the detailed content of How to remove comments through php regular expression. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template