Пакет Regex. json Замена версии приложения на переменную и строку - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь заменить номер версии в паре файлов с помощью пакета. json file и "replace": "1.1.0" с помощью скрипта npm. Я сталкиваюсь с проблемой Regex, которой я верю с заменой. Я думаю, что, возможно, решением должна быть какая-то группировка регулярных выражений, где я просто заменяю значение .* на $npm_package_version = решено, но я не знаю, как это сделать.

Пакет. json version = "version": "2.0.45",

Строки для поиска = "ApiVersion": "Any number and periods like this 1.2.67",

Попытка кода = "updateVersion": "replace \"\"ApiVersion\": .*\",\" \"\"ApiVersion\": \"$npm_package_version\",\" ../appsettings.json",

Ожидаемый результат = в настройках файла. json ApiVersion должен изменить на = "ApiVersion": "2.0.45",

Ошибка получена = "ApiVersion": "$npm_package_version",

Я предполагаю, что здесь что-то происходит с регулярным выражением, но я не могу понять, как получить npm версия пакета var для отображения внутри строкового значения. Он работает так же, как $npm_package_version.

1 Ответ

0 голосов
/ 24 марта 2020

наконец получил это. Этот ужин полезен в моей книге.

postversion": "replace '(?<=\"ApiVersion\":\\s\").*(?=\",)' $npm_package_version ../appsettings.json",

Для объяснения паратеза (текст здесь) создается группа. ?<= создает Сзади. \\s соответствует любому пробелу - двойное экранирование. .* соответствует всем промежуточным требованиям. ?= создает взгляд в будущее. Посмотрите / соответствует шаг через = "ApiVersion": любой пробел "что-нибудь между", замените только промежуточное значение переменной npm.

Я думаю, что это близко к тому, что он действительно делает - не эксперт по регулярным выражениям

Получите помощь здесь - Как заменить только захваченные группы?

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