Как уже упоминалось в комментариях к вашему вопросу, это невозможно напрямую с помощью поиска и замены регулярного выражения, но, тем не менее, это возможно в Sublime Text (и, возможно, в Atom, если он имеет аналогичную функциональность), используя встроенную функциональность..
Чтобы сделать это в Sublime, вы хотите использовать комбинацию Find All
, чтобы выделить весь текст, и встроенную команду Arithmetic
, чтобы изменить выбор.Особенности работы Arithmetic
команды можно найти в этом ответе , поэтому я не буду здесь это освещать.
Чтобы сделать то, что вы хотите здесь, выполните следующее:
Используйте панель Find
(или панель Replace
) для поиска регулярного выражения '[\d.]+r?em'
, но нажмите кнопку Find All
на панели, которая выберетвсе соответствующие элементы в буфере.
Используйте команду Arithmetic
из палитры команд, введите выражение round(float(x.strip("'rem"))*16)
и нажмите клавишу ввода для запуска команды.
Выражение здесь изменяет выделенный текст (x
), удаляя одинарные кавычки и символы rem
, превращает полученную строку в значение с плавающей запятой, выполняет умножение, а затем округляетзначение.
Результат примерно такой: