php - 正则表达式动态查找和替换
问题描述
我正在尝试在 PHP 中使用正则表达式执行查找/替换函数。isset($ServerVars->varGet("XXXX"))
我已成功找到使用以下正则表达式的所有实例:
\(isset\(\$ServerVars->varGet(.*?\)\))
但是,我现在需要用这个替换字符串:
NULL !== $ServerVars->varGet("XXXX")
如何替换isset($ServerVars->varGet("XXXX"))
with的所有实例NULL !== $ServerVars->varGet("XXXX")
?
请注意,在上面的示例中,"XXXX"
只是一个占位符;这个值会有所不同。
解决方案
()
在变量数据周围使用捕获组,并在替换中.*?
使用对第一组的反向引用:$1
$string = preg_replace('/isset\(\$ServerVars->varGet\((.*?)\)\)/',
'NULL !== $ServerVars->varGet($1)', $string);
但也许你想要!empty($ServerVars->varGet("XXXX"))
?不知道它返回了什么或你在做什么。
推荐阅读
- elasticsearch - 连接到现有弹性搜索的 Graylog 显示 503
- r - 如何用 bnlearn 表示领域知识信息
- javascript - 如何根据 React Native 表单中的字段值更新其他字段?
- google-sheets - 谷歌表时差计算
- django - 如何为聊天应用消息进行分页
- c# - 在 Visual Studio 中生成服务
- go - 浏览器在执行 http.Get in rest API 时使用 golang 返回空响应
- dc.js - 绘制 javascript 交叉过滤器维度的各个方面(使用 d3 和交叉过滤器的数量与时间)
- c - c 表达式在二维数组中必须有一个常量值
- python - TypeError:在 Datetime 上使用 Pandas 进行的类型提升无效