如何使用php删除括号之间的文本
如何删除括号之间的文本。 例如如何使用php删除括号之间的文本,php,Php,如何删除括号之间的文本。 例如 $str = 'Aylmers(test, test2), Ancaster(Clandeboye, Bluevale)'; i want to get as $str = 'Aylmers, Ancaster'; 试试这个: $str = 'Aylmers(test, test2), Ancaster(Clandeboye, Bluevale)'; echo preg_replace("/\([^)]+\)/","",$str ); 输出: Aylmers
$str = 'Aylmers(test, test2), Ancaster(Clandeboye, Bluevale)';
i want to get as
$str = 'Aylmers, Ancaster';
试试这个:
$str = 'Aylmers(test, test2), Ancaster(Clandeboye, Bluevale)';
echo preg_replace("/\([^)]+\)/","",$str );
输出:
Aylmers, Ancaster
这应该可以做到:
`如果还希望删除括号中的嵌套数据。您可以使用:
$str = 'Aylmers(test, test2), Ancaster(Clandeboye, Bluevale)';
echo preg_replace("/\(([^()]*+|(?R))*\)/","", $str);
//output:
//Aylmers, Ancaster
说明:
/-开头分隔符
(-匹配左括号)
[^]+-匹配不是右括号的字符
)-匹配右括号
/-结束分隔符
不幸的是,这并没有删除嵌套的方括号,如A(B(C)D),并为我们需要修改regix的嵌套方括号留下一个数据,但我已经为当前需求创建了。仅供参考-这些不是方括号。它们是括号。括号看起来是这样的:[]@billynoah,谢谢,括号“()”,花括号“{}”,方括号“[]”好吧,那么这可能是方言的一个区别——在美国,不管怎样,它通常是:括号(),括号[],括号{}对于嵌套括号,你可以查看我的答案。很高兴你添加了一些解释,但如果您要解释,那么请解释为什么/如何匹配嵌套括号,而不仅仅是一对。有了这样的解释,这一点实际上比实际情况要好。
$str = 'Aylmers(test, test2), Ancaster(Clandeboye, Bluevale)';
echo preg_replace("/\(([^()]*+|(?R))*\)/","", $str);
//output:
//Aylmers, Ancaster