从字符串中删除多个符号

时间:2013-07-08 07:13:23

标签: php regex preg-replace

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

5 个答案:

答案 0 :(得分:3)

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

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

会做同样的事情。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

preg_replace('/[{}\[\]]/', '', $string);

你应该在Regex

中添加适当的转义类
 $string = 'asdf{[]a]}ds';
 echo preg_replace('/[{}\[\]]/', '', $string);

输出asdfads

答案 3 :(得分:0)

你必须逃脱它:

/[{}[\]]/

答案 4 :(得分: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;

让我知道我是否可以帮助你。