替换[url = URL]正则表达式

时间:2014-12-27 23:43:50

标签: php regex preg-replace

寻找删除任何

文本的方法
[url=]

这很容易,但网址本身就是我无法控制的网址。

例如或网址:

[URL = wqffqwfq]    [URL = qwfwqfqf]

寻找preg替换,目前有这个:

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

但是会删除网址后面的图片。

感谢。

1 个答案:

答案 0 :(得分:1)

我认为你使用了太多的转义字符。但是,您可以使用延迟捕获组:

$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';

如果分配(=)字符是可选的,则可以使用/\[url(.*?)\]/i模式。

信息:.*?表示非贪婪的捕获:这意味着只要没有办法逃脱该组就会捕获.。从可能的那一刻起,正则表达式机制就逃脱了这个群体。