我面临以下问题。我正在尝试从配置文件中替换多个路径。这些文件包含一个路径名列表(每行一个),如下所示:
\\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 ,结果为 \
答案 0 :(得分:1)
如果我理解正确,您希望将其作为“替换为”字符串:
\\\\some_server\\a_resource\\\1\\2.1\\
即。 “... a_resource”+转义反斜杠(“\\”)+匹配字符串1(“\ 1”)+转义反斜杠(“\\”)+“2.1”+转义反斜杠(“\\”)
编辑:在'a_resource'之前需要一个双反斜杠,并在开始时加倍反斜杠。
答案 1 :(得分:1)
同样的问题,但我总是分两步完成:
\\\\some_server\\a_resource\\\1\\something_really_strange\\