2

我知道这preg_replace('/[{}]/', '', $string);会删除大括号,但是如果我也有方括号并且还需要删除它们怎么办?

4

5 回答 5

3

为什么要为此麻烦使用正则表达式。如果您所做的只是替换字符串中的 4 个字符:

str_replace(array('[',']','{','}'),'',$string);

会做同样的事情。

于 2013-07-08T07:24:09.477 回答
2

在字符类中包含方括号(转义):/[{}\[\]]/

于 2013-07-08T07:15:32.510 回答
1
preg_replace('/[{}\[\]]/', '', $string);

您应该将它们添加到正则表达式中的类中

 $string = 'asdf{[]a]}ds';
 echo preg_replace('/[{}\[\]]/', '', $string);

输出asdfads

于 2013-07-08T07:17:24.997 回答
0

当您正在寻找方括号删除时:

$str = preg_replace("/\[([^\[\]]++|(?R))*+\]/", "", $str);

这将转换为:

This [text [more text]] is cool

对此:

This is cool

编辑

$string = '<p>hey</p><p>[[{"type":"media","view_mode":"media_large","fid":"67","attributes":{"alt":"","class":"media-image","height":"125","typeof":"foaf:Image","width":"125"}}]]</p>';
$new_string = preg_replace('/\[\[.*?\]\]/', '<b>img inserted</b>', $string);

echo $new_string;

让我知道我是否可以进一步帮助您。

于 2013-07-08T07:16:40.900 回答
0

你必须逃避它:

/[{}[\]]/
于 2013-07-08T07:15:35.777 回答