Регулярное выражение Notepad++ заменить косой чертой и цифрами

Я столкнулся со следующей проблемой. Я пытаюсь заменить несколько путей из файлов конфигурации. Эти файлы содержат список путей (по одному на строку), например:

\\some_server\a_resource\some_library\latest\name_of_the_library.dll
\\some_server\a_resource\other_library\latest\name_of_other_library.dll

Я хочу заменить каждую строку на это:

\\some_server\a_resource\some_library\2.1\name_of_the_library.dll
\\some_server\a_resource\other_library\2.1\name_of_other_library.dll

Итак, я использую notepad ++ для замены во всех файлах, но вот проблема.

Я использую регулярное выражение:

\\\\some_server\\a_resource\\(.*)\\latest\\

и я хочу заменить его на:

\\some_server\a_resource\\1\2.1\

Результат:

\\some_server\a_resource\somelibrary.1\name_of_the_library.dll

Проблема в том, что \2 в строке «заменить на» считается совпадением и заменяется на «» (ничего), потому что второго совпадения нет.

Как я могу избежать "\2", чтобы результатом была косая черта и 2??

Примечание. Если поставить \\2, результат будет \


person Joaquin    schedule 09.02.2011    source источник


Ответы (2)


Если я правильно вас понял, вы хотите, чтобы это была строка «Заменить на»:

\\\\some_server\\a_resource\\\1\\2.1\\

то есть "...a_resource" + экранированная обратная косая черта ("\\") + совпадающая строка 1 ("\1") + экранированная обратная косая черта ("\\") + "2.1" + экранированная обратная косая черта ("\\")

Редактировать: нужна двойная обратная косая черта перед «a_resource» и удвоенная обратная косая черта в начале.

person Jeff    schedule 09.02.2011
comment
Это не работает. Кажется, что Replace with - это литерал (кроме, конечно, \{n})... - person Joaquin; 24.05.2011
comment
Он обеспечивает именно тот результат, который вам нужен на моем компьютере с Notepad++ 5.8.7. Мне пришлось добавить обратную косую черту, потому что она интерпретировала обратную косую черту как «BEL». Заменить определенно не буквально. - person Jeff; 25.05.2011

Та же проблема, но я всегда делаю это в 2 этапа:

  • сначала замените на \\\\some_server\\a_resource\\\1\\something_really_strange\\
  • затем замените «something_really_strange» на «2.1» в обычном режиме.
person aaron    schedule 27.12.2011