我正在寻找以下事项。我有 1400 多项事项要做。
应用程序=M:\8TB+\GOG.Com\99_Levels_To_Hell\Launch_99_Levels_To_Hell.Lnk 工作文件夹=M:\8TB+\GOG.Com\99_Levels_To_Hell\ ExitMethod=WinClose
我想做到
Application=M:\8TB+\GOG.Com\99_Levels_To_Hell\Launch 99 Levels To Hell.Lnk 工作文件夹=M:\8TB+\GOG.Com\99_Levels_To_Hell\ ExitMethod=WinClose
我只想定位“Launch”和“Lnk”之间的部分。删除两者_
之间的所有内容。
有什么办法可以做到这一点?
答案1
如何使用 Notepad++ 仅在特定行上替换路径最后一部分的字符?
最好的、可能也是唯一的解决方法是正则表达式。这需要一点思考,但下面的方法应该可行:
搜索:(?<!\\)(?!.*\\)_(?=.*Lnk)
用。。。来代替:
(空格字符↑)
(在当前/所有文档中;注意:' ' 是空格字符)
解释
匹配零件最后一个反斜杠后,我们将负向后视与负向前视结合起来:
(?<!\\)(?!.*\\)
。(我坦率地承认这部分有点像黑魔法,我仍然不完全理解——
\
后面没有任何字符,\
前面也没有任何字符跟随?)匹配下划线:
_
你只想匹配与
Application
快捷方式匹配的行,所以我们确保行以 'Lnk
'结尾通过使用负向前瞻:(?=.*Lnk)
概括
因此,总的来说,匹配下划线, 但只有最后一个反斜杠后和仅限于以“Lnk”结尾的行。 那是,(?<!\\)(?!.*\\)_(?=.*Lnk)
演示
我只能使用您提供的行,但只要它们满足这些假设(在反斜杠、下划线后对最后一部分进行操作,并以“Lnk”结尾),它也应该适用于其他行。