首页 > 解决方案 > 正则表达式动态查找和替换

问题描述

我正在尝试在 PHP 中使用正则表达式执行查找/替换函数。isset($ServerVars->varGet("XXXX"))我已成功找到使用以下正则表达式的所有实例:

\(isset\(\$ServerVars->varGet(.*?\)\))

但是,我现在需要用这个替换字符串:

NULL !== $ServerVars->varGet("XXXX")

如何替换isset($ServerVars->varGet("XXXX"))with的所有实例NULL !== $ServerVars->varGet("XXXX")

请注意,在上面的示例中,"XXXX"只是一个占位符;这个值会有所不同。

标签: phpregexreplace

解决方案


()在变量数据周围使用捕获组,并在替换中.*?使用对第一组的反向引用:$1

$string = preg_replace('/isset\(\$ServerVars->varGet\((.*?)\)\)/',
                       'NULL !== $ServerVars->varGet($1)', $string);

但也许你想要!empty($ServerVars->varGet("XXXX"))?不知道它返回了什么或你在做什么。

演示


推荐阅读