2009-09-01 4 views

답변

5

뭔가 :이 조금 더 관대 한 당신의 예보다

preg_match('/(<br>\s*){3}/i', $str, $matches); 

- 그것은 대소 문자를 구분 일치를 수행하고 <br>들뿐만 아니라 개행 문자 사이의 공백과 일치합니다.

3 대신에 3 개 이상을 일치 시키려면 :

preg_match('/(<br>\s*){3,}/i', $str, $matches); 
+0

그는
태그 사이의 텍스트를 얻으려고 노력 아닌가요? –

+0


태그를 모두 바꾸려고하지 않습니다. 3 번 연속해서 나타나는 것들 –

+0

@Yannick 태그 사이의 텍스트를 원하지 않는다. 단지 3
태그를 내 자신의 서식으로 바꾸고 싶다. –

3

그냥 다음 문자열 교체하고 더 나을있는 <BR> 인스턴스를 교체합니다. 정규 표현식보다 훨씬 빠릅니다. 거기에

$newstr = str_replace('<BR>', 'replacement...', $str); 
1

필자의

<?php 

$html = <<<HTML 
<BR> 
<BR> 
<BR> 
<p>^^ Replace 3 consecutive BR tags with nothing</p> 
<BR> 
<BR> 
<p>^^ those should stay, there's only 2 of them</p> 
<BR> 
    <BR> 


     <BR> 
<p>^^ But those should go, whitespace and newlines shouldn't matter 
HTML; 

echo preg_replace("/(?:<br>\s*){3}/i", '', $html); 
관련 문제