У вас есть две проблемы:
- В строке замены
\d
означает «напечатать a d
» и ничего более. Все специальные элементы регулярного выражения, такие как \d
\w
и т.д., Работают только в шаблоне поиска, а не в строке замены.
- Как сказал @DavidPostill, Notepad++ не может выполнять математические операции при поиске / замене регулярных выражений.
У вас есть три варианта сделать то, что вы хотите:
- Используйте какую-нибудь программу, скрипт или плагин, чтобы сделать замену для вас. Любая версия этого, как сказано в предыдущем комментарии, не по теме.
- Используйте поиск Notepad++ и замените 3 раза.
- Раунд один для одной цифры,
- Раунд два для двух цифр, и
- Раунд три для трех цифр.
- Если у вас Notepad++ больше, чем v6.0, вы можете использовать синтаксис PCRE в регулярном выражении и использовать превосходный ответ @ACR, чтобы сделать все это за один проход.
Чтобы выполнить это в трехпроходном методе, используйте следующие шаги. Возможно, вам придется изменить шаблоны поиска, чтобы ловить то, что вы хотите, и только то, что вы хотите. Они работают в приведенном выше примере, но ваши файлы могут быть более сложными, чем образец.
Первый раунд
Найдите это:
(\s+)(\d),
Заменить на это:
\11700\2,
Второй раунд
Найдите это:
(\s+)(\d\d),
Заменить на это:
\1170\2,
Раунд третий
Найдите это:
(\s+)(\d\d\d),
Заменить на это:
\117\2,
Что оно делает
В шаблоне Find this
шаблон \s+
находит все пробелы, которые могут быть найдены до следующего токена, требуя, по крайней мере, один, чтобы предотвратить объединение числа после чего-либо, кроме пробела. ()
Вокруг него делает его первой захваченной строкой, возвращаемой совпадением. \d
соответствует одной цифре, а группы \d\d
и \d\d\d
позволяют ему точно соответствовать 2 или 3 цифрам. Опять же, ()
превратить его в группу захвата, второй на этот раз. И ,
наконец , соответствует запятая после чисел, что позволяет сохранить ее на той же строке в файле примера.
В Replace with this
, \1
заменяется первой группой захвата (пробелы). 1700
, 170
и 17
распечатать часть, которая должна быть добавлена в линию. \2
заменяется второй группой захвата, которая является цифрой (цифрами), имеющейся в шаблоне поиска. Наконец, ,
явно заменен, а не тратить захват группы для него.