RegEx 트릭 북에 추가 할 가치가있는 몇 가지 다른 방법 :
먼저 RegEx를 다음 /(<br\s*/?>)+/i
과 같이 압축하여 바꿀 수 있습니다 <br />
(RegExP에 부담을주지 않아도 됨). 항상 선택한 XHMTL 줄 바꿈으로 끝납니다.
*/
종료 주석이나 ?>
종료 스크립트를 트립하지 않도록 RegEx를 수정하는 다른 방법 :
- 사용 소유 한정 기호 :
#(<br\s*+/?+>)+#i
- 어떤 기본적에 대한 의미 \s*+
는, 거기에 그것을 유지로 많은으로 공백 일치하는 항목을 찾을 경우에 대한 /?+
당신이 슬래시가 계속 발견하는 경우!
- 둘러싸
\s*
및 /*
캡처 그룹 =>#(<br(\s*)(/?)>)+#i
라이브 데모 : http://codepad.viper-7.com/YjqUbi
우리가 소유 행동 또한 주석 문제가되는 우회 가장 빠른 정규식을 배웠어 그리고 이후 : 데모를 설명#(<br\s*+/?+>)++#i
까다로운 상황에서 논평하기
코드를 변경할 수 없거나 이미 여러 줄 주석을 사용한 경우 :
$string='Hello<br>World<br><br />World<br><br><br>Word!';
<<<'comment'
$string = preg_replace('#(<br\s*/?>)+#i', '<br />', $string);
comment;
라이브 코드 : http://codepad.viper-7.com/22uOtV
참고 : nowdoc는 A와 유사하다 히어 닥 하지만 콘텐츠를 구문 분석하지 않으며이있어 가지고있다 시작점 구분 안에 '
작은 따옴표 '
( 주는 것으로 결말 구분이 idented 수 없습니다 , 다음에해야 ;
하고, 새로운 라인 ! )
2. goto로 코드를 뛰어 넘습니다 .
$string='Hello<br>World<br><br />World<br><br><br>Word!';
goto landing;
$string = preg_replace('#(<br\s*/?>)+#i', '<br />', $string);
landing:
라이브 예 : http://codepad.viper-7.com/UfqrIQ
3. if(false)
또는로 코드를 건너 뛰십시오 if(0)
.
$string='Hello<br>World<br><br />World<br><br><br>Word!';
if(0){
$string = preg_replace('#(<br\s*/?>)+#i', '<br />', $string);
}
테스트 : http://codepad.viper-7.com/wDg5H5