我想知道如何在php中使用regexp删除一组括号和括号本身之间的文本,这些问题可能会有所不同......例如:
[为myContent}
或
(为myContent]
或
{为myContent)
依旧......
我试过了:
preg_replace("/\{.*\}/", " ", $title);
preg_replace("/\[.*\]/", " ", $title);
preg_replace("/\(.*\)/", " ", $title);
但这只是删除相同的括号..是的括号可以嵌套到二年级..
答案 0 :(得分:1)
您需要使用[]
设置字符集并使用()
保留字符集;
print preg_replace("~([\[\{\(]).*?([\]\}\)])~", "\\1...\\2",
"[mycontent} a (mycontent] b {mycontent)");
输出:[...} a (...] b {...)
答案 1 :(得分:0)
$title = "[mycontent}outside(mycontent]outside{mycontent)";
$find = array(
"/\{.*?\}/",
"/\{.*?\]/",
"/\{.*?\)/",
"/\[.*?\}/",
"/\[.*?\]/",
"/\[.*?\)/",
"/\(.*?\}/",
"/\(.*?\]/",
"/\(.*?\)/"
);
$replace = array(
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "
);
$string = preg_replace($find, $replace, $title);
var_dump($string); // prints string(17) " outside outside "