Strip BBCode via RegEx

2019-01-29 11:15发布

I am trying to setup a regex that will detect [quote]???[/quote] and will remove it.

This is what I have but it is not working:

$post['body'] = preg_replace("/\[quote\](.+?)\[\/quote\]/is", '', $post['body']);

Can anyone point me in the right direction?

I also want to remove any line brakes before or after the [quote]???[/quote].

2条回答
我欲成王,谁敢阻挡
2楼-- · 2019-01-29 11:42

Here's my test with your script:

$text = "I am trying to setup a regex that will detect [quote]???[/quote] and will remove it.\r\nThis is what I have but it is not working:";
$sentences = preg_replace("/\[quote\](.+?)\[\/quote\]/is", '', $text);
echo '<pre>'.print_r($sentences, true).'</pre>';

And my Output:

I am trying to setup a regex that will detect  and will remove it.
This is what I have but it is not working:

You can see: [quote]???[/quote] is removed.

I think your problem is anywhere else. Check the Value of $post['body']!

Maybe it is a misspelling and you meen $_POST['body']?

查看更多
男人必须洒脱
3楼-- · 2019-01-29 11:47

Just figured out my own issue.

$post['body'] = preg_replace("/\[quote\](.+?)\[\/quote\]/is", '', $post['body']); $body = trim(rtrim($post[0]['body']));

查看更多
登录 后发表回答