我知道preg_replace('/[{}]/', '', $string);
将删除大括号,但是如果我也有方括号并且还需要删除它们呢?
答案 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;
让我知道我是否可以帮助你。