首页 > 解决方案 > PHP:省略包含在 [] () {} 中的字符串部分

问题描述

是否有可能制定一个规则,可以同时删除用 [] () 和 {} 括起来的字符串的任何部分,只留下它的任何部分?

例如,如果我有这样的字符串:

// Input
$string = 'my(apple)[banana][carrot(orange)]food[supply]';

// Output
$string = 'myfood';

我知道如何选择用括号括起来的字符串的一部分,但在这种情况下,我想选择任何未括起来的部分。

这是我当前卡住的正则表达式,我可以选择封闭的字符:

\[.*?\]|\(.*?\)|\{.*?\}

标签: phpregex

解决方案


这是解决这个问题的方法,

$string = 'my(apple)[banana][carrot(orange)]food[supply]{test}';
echo preg_replace('/{(.*?)}|\[.*?\]|\([^)]+\)/","",$string);

这是工作演示


推荐阅读