2012-09-15 3 views
0

문자열에서 모든 인용 부호를 제거하려면 INCLUDE 중첩 인용 부호를 제거하고 싶습니다.regexp를 사용하여 모든 견적을 제거하십시오.

가 중첩 된 qoutes 작동하지 않습니다

:

preg_replace("/\[quote(.*?)\](.*?)\[\/quote\]/i","", $text); 

이 같은 뭔가를 작동합니다

[quote=admin]Welcome to RegExr 0.3b, an intuitive tool for learning, writing, and testing Regular Expressions. Key features include: [/quote] 

하지만 위해 :

[quote=admin]Welcome to RegExr 0.3b, [quote] an intuitive tool for learning, [/quote] writing, and testing Regular Expressions. Key features include: [/quote] 

모든있는 qoute 블록을 제거 할 것

답변

1

당신의 실수는 단순히 표현의 물음표라고 생각합니다. 그것은 작동하고

$text = '[quote=admin]Welcome to RegExr 0.3b, [quote] an intuitive tool for learning, [/quote] writing, and testing Regular Expressions. Key features include: [/quote]'; 
$cleared = preg_replace("/\[quote(.*?)\](.*)\[\/quote\]/i","", $text); 

var_dump($cleared); 
// -> string(0) "" 
+0

no. "[quote = admin] RegExr 0.3b에 오신 것을 환영합니다. RegExr 0.3b에 오신 것을 환영합니다. 정규 표현식을 배우고, 쓰고, 테스트하는 데 사용되는 직관적 인 도구입니다. [/ quote]"가 아닌 : "[quote = admin] RegExr 0.3b에 오신 것을 환영합니다. [인용하기] 정규 표현식을 배우고, 인용하고, 쓰고, 테스트 할 수있는 직관적 인 도구입니다. [/ quote] " – m3hdi

+0

당신이 기대하는 결과에 좀 더 분명히하십시오. – Thorsten

+0

그냥 원합니다. 문자열의 중첩 된 내용을 포함한 모든 인용문 블록을 제거합니다. (첫 번째 예제는 예제로 업데이트 됨) – m3hdi

-1

str_replace('"', '', $string);이 아니겠습니까?

수정 : 이것은 잘못된 답변입니다. 나는 그 질문을 잘못 읽었다.

+0

: 이 코드는 같은하지만 여러 따옴표를 인용 모든 따옴표를 제거합니다. 그러면 bbcode에서 어떻게 작동할까요? – m3hdi

+0

@는 인용 부호가 아닙니다. 이 "[quote] foo [/ quote]". 'str_replace()'가 이것에 적합하지 않습니다. –

+0

죄송합니다, 잘못된 질문 :) – egis

1
/\[quote.*?\](.*?)\[\/quote\]((\s)*(\[\/quote])*)*/gis 

하지만이 완료되지이다 :

은 편집에 게시 귀하의 예제와 함께

preg_replace("/\[quote(.*?)\](.*)\[\/quote\]/i","", $text);을보십시오.

[/ quote] 다음에 다음 [/ quote] 다음에 ... 그리고 아무 것도 없다는 것에 유의하십시오. 그것을 얻을하지 않습니다

[quote] ... [quote]...[/quote] ... [quote]...[/quote] ... [/quote] 
관련 문제