Блокнот ++ регулярное выражение заменить на косую черту и цифры - PullRequest
2 голосов
/ 09 февраля 2011

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

\\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 , то результат будет \

Ответы [ 2 ]

1 голос
/ 27 декабря 2011

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

  • сначала заменить на \\\\some_server\\a_resource\\\1\\something_really_strange\\
  • затем замените'thing_really_strange 'на' 2.1 'в обычном режиме
1 голос
/ 09 февраля 2011

Если я правильно вас понимаю, вы хотите использовать эту строку в качестве строки "Заменить на":

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

т.е. "... a_resource" + экранированный обратный слеш ("\\") + строка с соответствием 1 ("\ 1") + экранированная обратная косая черта ("\\") + "2.1" + экранированная обратная косая черта ("\\")

Редактировать: требуется двойной обратный слеш перед 'a_resource' и удвоенная обратная косая черта вначать.

...