2014-12-27 2 views
0

는 쉬울 것이다교체 [URL = URL] 정규식

[url=] 

어떤 텍스트를 제거하는 방법을 찾고 있지만 URL 자체는 내가 통제 해달라고 URL입니다.

예 또는 URL :

$post_text = preg_replace('%\[URL[^\]]*\][^\[\]]*|\[/URL[^\]]*\]%i', '', $post_text); 

:

[URL = wqffqwfq] [URL = qwfwqfqf]

레그 찾고 현재이 있고, 교체 그러나 그것은 URL 다음에 오는 이미지를 제거합니다.

감사합니다.

+2

이 정규식''/ [url (. *?)]/i "'을 시도 했습니까? –

+0

@ (https ?: // ([- \ w \.] + [- \ w]) + (: \ d +)? ((\\ /_\.#- ] * (\? \ S +)? [^ \. \ s])?). * $) @ ";"''. – avenet

+0

최악의 상황에 대한 예를 들어 주실 수 있습니까? 그 사이에 Dunois는 @ charlotte를 시도해야한다고 생각합니다. –

답변

1

너무 많은 이스케이프 문자를 사용한다고 생각합니다. 할당이 (=) 문자는 선택 사항입니다, 당신은 /\[url(.*?)\]/i 패턴을 사용할 수있는 경우

$string = '[foo] buz [url=wqffqwfq] qux [bar] foobar [url=qwfwqfqf] faq'; 
$pattern = '/\[url=(.*?)\]/i'; 
$replace = ''; 
$string = preg_replace($pattern,$replace,$string); 
//$string = '[foo] buz qux [bar] foobar faq'; 

: 당신은 그러나 게으른 캡처 그룹을 사용할 수 있습니다.

정보 : .*?은 욕심이없는 캡처를 의미합니다. 이는 그룹을 탈출 할 수없는 한 .이 캡처됨을 의미합니다. 가능한 순간부터, 정규식 메커니즘은 그룹을 탈출합니다.

+0

완벽한, 많은 감사합니다 :) – Lovelock