Regex Dynami c Найти и заменить - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь выполнить функцию поиска / замены, используя регулярное выражение в PHP. Я успешно нашел все экземпляры isset($ServerVars->varGet("XXXX")), используя следующее регулярное выражение:

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

Однако теперь мне нужно заменить строку следующим образом:

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

Как заменить все случаи isset($ServerVars->varGet("XXXX")) с NULL !== $ServerVars->varGet("XXXX")?

Обратите внимание, что в приведенном выше примере "XXXX" является просто заполнителем; это значение будет меняться.

1 Ответ

0 голосов
/ 02 апреля 2020

Используйте группу захвата () вокруг переменных данных .*? и используйте обратную ссылку на эту первую группу $1 при замене:

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

Но, возможно, вы хотите !empty($ServerVars->varGet("XXXX")) ? Не уверен, что он возвращается или что ты делаешь.

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...