Регулярное выражение Perl заменяет строку на подстроку регулярного выражения - PullRequest
1 голос
/ 19 июля 2010

У меня вопрос по Perl.

Предположим, у меня есть следующая строка в моем файле:

DoMatchLong ( "ThisIsMyVariable", lThisIsMyVariable);

Я хочу заменить "ThisIsMyVariable" на cp_const_ThisIsMyVariable

Итак, моя цель:

DoMatchLong (  cp_const_ThisIsMyVariable, lThisIsMyVariable);


$count = s/(?<=")\w+(?=")/const_cmd_cp_$&/gx;

приводит к DoMatchLong ( "cp_const_ThisIsMyVariable", lThisIsMyVariable);

Так что же является правильным решением?

1 Ответ

5 голосов
/ 19 июля 2010
$count = s/"(\w+)"/const_cmd_cp_$1/gx;

Вытяните кавычки в соответствие, затем используйте группу захвата, чтобы получить только фактический текст между кавычками, но при этом заменить их.

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