> 백엔드 개발 > PHP 문제 > PHP 정규식에서 주석을 제거하는 방법

PHP 정규식에서 주석을 제거하는 방법

藏色散人
풀어 주다: 2023-03-08 09:30:01
원래의
1682명이 탐색했습니다.

PHP에서 일반 주석을 제거하는 방법: 1. PHP 샘플 파일을 만들고 주석 내용을 포함합니다. 2. "highlight_string(removeComment(file_get_contents('./a.php')))"를 통해 주석을 제거합니다. .

PHP 정규식에서 주석을 제거하는 방법

이 기사의 운영 환경: windows7 시스템, PHP8 버전, DELL G3 컴퓨터

정규식을 사용하여 PHP 코드에서 주석 제거

테스트 코드

파일: a.PHP

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

파일 : 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));
}
로그인 후 복사

테스트 출력

test.php를 실행하면 출력은 다음과 같습니다.

PHP 정규식에서 주석을 제거하는 방법

정기 분석

(\/\*.*\*\/) 匹配 /* */
(#.*?\n)  匹配 #  遇到第一个回车后结束
(\/\/.*?\n) 匹配 //  遇到第一个回车后结束
로그인 후 복사

이 사이트의 편집자는 계속해서 다음을 추가합니다:

다줄 댓글

<?php
  
$s = &#39;/*aaaa
sss
*/*/&#39;;
  
preg_match(&#39;@/\*.*?\*/@s&#39;, $s, $match);
  
var_dump($match);
로그인 후 복사

실행 결과

array(1) {
 [0]=>
 string(15) "/*aaaa
sss
*/"
}
로그인 후 복사

한 줄 주석 일치

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

Output

a = b;
b = c;
로그인 후 복사

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
로그인 후 복사

Output

/* xx */

/* y */

phpstorm의 또 다른 Lua 버전 정규 일치는 주석 줄을 삭제합니다(대체 빈 줄이 있는 주석 줄)

phpstorm을 사용하여 PHP 및 자바스크립트 코드를 작성하면 사용하기 좋고 편안합니다.

필요할 때가 있습니다. 프레임워크의 소스 코드를 읽을 때 소스 코드의 주석 줄을 한 줄씩 수동으로 삭제하면 충분히 과학적이지 않습니다.

물론 저는 강력한 정규식(regExp 정규식)을 생각했습니다. 정규식을 작성하여 모든 주석 줄을 찾아 공백으로 바꾸면 요구 사항이 달성됩니다.

1. ctrl + F, 정규식 입력: (//.*$)|(/*(.|s)*?*/)

2. ctrl + R, 입력 안 함:

3. 나중에 모두 바꾸기를 클릭하세요

그러나 이 방법이 우리의 요구 사항을 완전히 충족시키지 못했다는 사실을 발견하고 주석 줄을 빈 줄로 바꿨습니다.

그래서 빈 줄을 일치시키고 삭제하는 또 다른 정규식을 작성해 보겠습니다.

1.ctrl + F, 정규식 입력: ^n

2.ctrl + R,

3을 입력하지 마세요. 모두 바꾸기

를 클릭했지만 모든 빈 줄이 삭제되지는 않았습니다. (아직 삭제되지 않은 빈줄도 있습니다)

그럼 계속해서 정규 매칭 삭제를 진행해 보도록 하겠습니다.

1.ctrl + F, 정규식 입력: sn

2.ctrl + R, 입력 안 함

3. 뒤쪽에서 모두 바꾸기를 클릭하세요.

자, 여기에서 빈 줄을 모두 삭제하세요. 재미있게 보내세요-:)

사실 이 세 단계를 하나의 단계로 합쳐야 한다고 생각하시면 됩니다! [추천 학습: "PHP 비디오 튜토리얼"]

위 내용은 PHP 정규식에서 주석을 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿