Как я могу заменить символ в последней части пути только в определенных строках, используя Notepad++?
Лучший и, возможно, единственный способ сделать это - регулярное выражение. Это заняло немного времени, но следующее должно работать:
Поиск: (?<!\\)(?!.*\\)_(?=.*Lnk)
Заменить на:
(пробел ↑)
(в текущих / всех документах; NB: '
'это космический символ)
объяснение
Чтобы сопоставить детали после последнего обратного слеша, мы объединяем отрицательный взгляд сзади с отрицательным взглядом: (?<!\\)(?!.*\\)
.
(Я свободно признаю, что эта часть была немного черной магии, которую я до сих пор не до конца понимаю - нет \
позади и нет \
за которыми следуют какие-либо персонажи впереди?)
Подберите подчеркивание: _
Вы хотите сопоставлять только строки, соответствующие ярлыку Application
, поэтому мы должны убедиться, что строка заканчивается символом ' Lnk
', используя отрицательный прогноз: (?=.*Lnk)
Резюме
Таким образом, в целом, он соответствует подчеркиванию, но только после последнего обратного слеша и только в строках, заканчивающихся на 'Lnk'. То есть (?<!\\)(?!.*\\)_(?=.*Lnk)
демонстрация
Попробуйте это в regex101!
Я мог бы использовать только те строки, которые вы указали, но при условии, что они удовлетворяют этим предположениям (работая с последней частью после обратной косой черты, подчеркиваний и заканчивая 'Lnk'), это должно работать и для других строк.