2012-06-30 4 views
-3
포함 태그 사이에 대체

가능한 중복 :
PHP Regex Get Text Between BBCode Tags정규식 - 태그

내가 같은 텍스트가 : 독일어 [에

[lang_de] 콘텐츠/lang_de] [lang_en] 영어로 된 내용 [/ lang_en].

나는 개폐 언어 태그를 포함 [lang_en][/lang_en] 사이의 모든 텍스트를 대체 할.

이 내 현재 정규식 :

UPDATE wp_posts SET post_content = '" . addslashes(preg_replace("/[lang_en](.*)[\/lang_en]/", '', $row['post_content'])) . "' WHERE ID = " . $row['ID'] 

이 정규식으로, 내가 올바른 결과를 얻을 수 없습니다. 또한 html 태그 등으로 대체됩니다.

올바른 정규식은 무엇입니까?

[lang_de] 
<!--more--> 
<div class="s-desc"> 
<br/> 
Länge: 3:50 min | Tempo: 125 bpm 
<p> 
Text<br/> 
</p> 
<p> 
<a href="#">LoFi-Version zum Testeinsatz in Ihrem Projekt hier downloaden</a>.  (Rechstklick-->Ziel speichern unter...)<br/> 
Die Nutzung dieser LoFi-Version ist ausschließlich für Testzwecke erlaubt! 
</p> 
</div> 
[/lang_de] 


[lang_en]<!--more--> 
<div class="s-desc"> 
<br/> 
Length: 3:50 min | Tempo: 125 bpm 
<p> 
Text<br/> 
</p> 
<p> 
<a href="#">Download a lofi-version to test with your project here</a>. (right-click-->save target as...)<br/> 
The usage of this lofi-version is permitted for testing purposes only! 
</p> 
</div> 
[/lang_en] 

결과는 다음과 같이한다 :

<!--more--> 
<div class="s-desc"> 
<br/> 
Länge: 3:50 min | Tempo: 125 bpm 
<p> 
Text<br/> 
</p> 
<p> 
<a href="#">LoFi-Version zum Testeinsatz in Ihrem Projekt hier downloaden</a>.  (Rechstklick-->Ziel speichern unter...)<br/> 
Die Nutzung dieser LoFi-Version ist ausschließlich für Testzwecke erlaubt! 
</p> 
</div> 

답변

-1
preg_replace("/\[lang_en](.*?)\[\/lang_en]/s", '', $text); 
          ^   ^
          lazy    | 
            '.' matches newlines as well 

간단한 테스트 here

텍스트 예입니다.

+0

이것은 작동하지 않습니다. 이 정규 표현식은 문자 및 기타 HTML 태그를 대체합니다. – user998163

+0

http://ideone.com/WGOfM에서 코드 테스트 –

+1

"이 정규식은"편지를 대체합니다. 편지를 바꾸지 않습니까? –