regex - 如何根据 BODMAS 规则获取括号内的值
问题描述
我尝试并坚持这个仅适用于一对括号的公式:
preg_match('#\((.*?)\)#', $text, $match);
print $match[1];
我想要做的是在第一个右括号之前的最后一个左括号之后解析文本。
例如,我有这样的等式:
1+(2+(3+(5-6)))+(7-8)
将被解析的文本是“5-6”。
解决方案
匹配(
> 除(
或之外的任何内容)
>)
$text = '1+(2+(3+(5-6)))+(7-8)';
preg_match('/\(([^\(\)]+)\)/', $text, $match);
var_dump($match);
推荐阅读
- javascript - 如何使用 getRange 在 Google 表格中查找最后一行
- azure-active-directory - 已注册应用程序的总权限为 30 个的新限制
- kubernetes - Kubernetes NodePort - 忽略 Ufw/Iptables?
- javascript - 如何显示来自 redux 商店的数据?
- docker - 将 docker 存储引擎从 devicemapper 更改为 overlayfs2
- python - 在 PANDAS/Python 中绘制 Groupby DatFrame 的结果
- c# - 为什么我不能创建对象实例?
- cxf - wsdl2java 生成空指针异常 apache cxf
- css - 无法更改 ng-multiselect 下拉菜单的样式
- c++ - 在没有太多条件的情况下如何避免除以零?