2012-09-07 2 views
0

내가 preg_replace이다에 대한 정규식 표현을 찾고 있어요 ($ the_expression, "", $ OLD_TEXT)preg_replace이다 {다양한 텍스트}

내가 가지고있는 것처럼 텍스트 :

{일부 텍스트가} 로렘 입숨이되었습니다 업계 1500 년 이래로 알려지지 않은 프린터가 형식의 갤리선을 가져 와서 형식 표본을 만들기 위해 뒤섞었던 표준 더미 문구. 그것은 {다양한 글자} 5 세기뿐만 아니라 전자 조판으로 도약했으며, 본질적으로 변하지 않았습니다. 그것은 Letraset 시트의 릴리스와 함께 1960 년대 {다른 텍스트}에 포함되었습니다.

중괄호 안에 다양한 텍스트를 중괄호로 지정하고 ""(아무 것도 없음)을 대상으로하고 싶습니다.

답변

3

당신이 찾고있는 정규 표현식은 다음과 같이이다 : 그것은 것 preg_replace()에, 그래서

{  - A left curly brace 
[^}]+ - Anything that is not a right curly brace, one or more times 
}  - A right curly brace 

:

{[^}]+} 

일치

$new_text = preg_replace('/{[^}]+}/', '', $old_text); 
2

비 욕심 많은 정규 표현식을 사용할 수 있습니다 :

$new_text = preg_replace('/{.*?}/', '', $old_text); 
+0

비 욕심 많은 정규식이란 무엇입니까? 고마워요 – IberoMedia

+0

대개'*'와'+'는 정규 표현식에서 가능한 한 매치합니다. 그래서'foo {thing1} bar {thing2} baz' 문자열에'{. *}'를 쓰면 일치 할 것입니다 {{물건 1} 바 {물건 2}'; 이것은 "탐욕"이라고합니다. 가능한 가장 짧은 부분 문자열과 일치 시키려면'+'또는'*'다음에'?'를 붙이십시오. '{. *?}'는 단지 {thing1}과 일치합니다. – Barmar