php - PHP:省略包含在 [] () {} 中的字符串部分
问题描述
是否有可能制定一个规则,可以同时删除用 [] () 和 {} 括起来的字符串的任何部分,只留下它的任何部分?
例如,如果我有这样的字符串:
// Input
$string = 'my(apple)[banana][carrot(orange)]food[supply]';
// Output
$string = 'myfood';
我知道如何选择用括号括起来的字符串的一部分,但在这种情况下,我想选择任何未括起来的部分。
这是我当前卡住的正则表达式,我可以选择封闭的字符:
\[.*?\]|\(.*?\)|\{.*?\}
解决方案
这是解决这个问题的方法,
$string = 'my(apple)[banana][carrot(orange)]food[supply]{test}';
echo preg_replace('/{(.*?)}|\[.*?\]|\([^)]+\)/","",$string);
这是工作演示。
推荐阅读
- azure - 将 VSTS 请求创建为未分配时的通知
- c# - 使用 VSTO 在 Word 文档的每一页上插入一个矩形
- javascript - 我们能否创建一个接受组件并为其添加和应用额外道具的 HoC 或组合?
- python - Python 执行时间
- opengl - 如何进行无分支丢弃?
- ios - 在 UICollectionView 中每行显示 3 个项目
- sql - 按开始和结束日期分组数据
- python - 如果是用户输入,则找不到对象
- java - 必应搜索 API:使用正确的订阅密钥时出现 401 访问被拒绝错误
- reactjs - 在 React 中一起传递 state 和 setstate