У вас есть две проблемы:
- В строке замены
\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 заменяется второй группой захвата, которая является цифрой (цифрами), имеющейся в шаблоне поиска. Наконец, , явно заменен, а не тратить захват группы для него.