php - php preg_replace 正则表达式替换子匹配中的匹配字符
问题描述
当它们出现在字符串的括号之间时,我想在 +/- 字符周围放置空格,前提是括号前面有一个名为“calc”的“函数”。例如
起始字符串
some text;(some+other+text);calc(some+text-here);some+further-text
所需的输出
some text;(some+other+text);calc(some + text - here);some+further-text
所以使用下面的表达式我可以匹配 calc(*) 部分;
/(?:calc\([^\)]+\))+/m
并且使用以下表达式,我可以匹配所有 +/- 符号,而不仅仅是 calc() 函数中的那些:
/[\+\-](?!(?:calc\([^\)]+\))+)/m
这里有一个问题是我用来构建上述内容的,如果我只想在括号之间进行匹配,它会做我想要的。但是,当我指定额外的“计算”时,它就会中断。
任何进一步的帮助将不胜感激。
解决方案
推荐阅读
- clojurescript - Om Next 具有不同查询参数的同一组件的多个实例
- ios - 我应该以 MVP 模式在 iOS 上的演示者中将我的视图投射到 UIViewController 吗?
- python - Python 在程序退出时修改关闭的文件
- python - 如何通过python删除来自特定发件人的电子邮件
- reactjs - React URL 不可访问
- javascript - 如何使用 chrome.tabs.executeScript
- mysql - 从 MySQL 中的多个表的 max 列获取关联数据
- python - Python递归:传递所有变量与仅声明全局变量并在函数中重新声明相比有什么优势吗?
- ruby - 如何创建 Google::Protobuf::Map 实例 [Ruby]
- dart - 如何在 Flutter 中的 TextFormField 中实现日期逻辑