2013-06-19 12 views
0

문자열에서 빈 [url = http : //exp.com] [/ url] 태그를 제거하는 데 문제가 있습니다. 여기에 내가 가지고있는 것은 있지만, 두 태그 사이에 뭔가가 있으면 bcz가 삭제됩니다.PHP로 빈 BBcode url 태그를 제거하십시오

$desc = preg_replace("#\[url=.*?\][(\W)]?\[/url\]#i", "", $desc); 

답변

1

이 패턴을 시도 : (: [^]] 예)

$desc = preg_replace('~\[url=[^]]*]\s*+\[/url]~i', '', $desc); 

아이디어는 닫는 대괄호가 포함되지 않은 문자 클래스를 사용하여 게으른 정량을 방지하는 것입니다.

\s*+은 여는 태그와 닫는 태그 사이에 흰색 문자 만 허용하지만 필요하지 않은 경우 제거 할 수 있습니다.

닫는 대괄호는 문자 클래스 외부로 이스케이프 할 필요가 없으므로 첫 문자가 아닌 문자 클래스 내에서 이스케이프해야합니다. 당신은 [^]a] 또는 [^a\]] 또는 [^\]a]하지만 로 해석하지 [^a]] 모든 문자를 쓸 수 있지만 a 깜짝 당신이 [url=www.example.com]www.example.com[/url]

+0

에 대한 [url=www.example.com][/url] 스탠드 근무하기 때문에 무엇을하려고에 의해 ]

내가 다음에! 엄지 위로! – Edison

관련 문제