Удалить все, что осталось от второй обратной косой черты

#regex

#регулярное выражение

Вопрос:

Моя музыкальная коллекция организована по исполнителям с отдельными подкаталогами для каждого из альбомов исполнителя

Моя машина не поддерживает музыку в подкаталогах. Я хочу создать USB-накопитель с музыкой в root. Я также хотел бы перенести плейлисты, но они ссылаются на структуру подкаталогов.

В принципе, все, что мне нужно сделать, это удалить все, что осталось от второй обратной косой черты.

Перед:

 The PretendersPretenders II (Disc 1) [2006 Remaster]The Pretenders - Pretenders II (Disc 1) [2006 Remaster] - 03 - Message Of Love.m4a
  

После:

 The Pretenders - Pretenders II (Disc 1) [2006 Remaster] - 03 - Message Of Love.m4a
  

Я надеялся сделать это в notepad с помощью find / replace.

Ответ №1:

Это должно быть все, что вам нужно. Найдите и замените следующее пустой строкой:

  .*\
  

Комментарии:

1. Спасибо, что сделали это! Можете ли вы объяснить, как это работает? Для меня это выглядит как любой символ, за которым следует обратная косая черта. Почему вторая обратная косая черта не экранирована? Что насчет содержимого между двумя обратными косыми чертами? На первый взгляд, я бы не ожидал, что это будет соответствовать моему примеру

2. Точка ( . ) соответствует любому символу, кроме новой строки. Звездочка ( * ) соответствует 0 или более из предыдущего элемента. Двойная обратная косая черта должна соответствовать фактическому символу обратной косой черты ( ), поскольку обратная косая черта является специальным символом в регулярном выражении. Таким образом, все регулярное выражение находит все символы, которые предшествуют обратной косой черте. И если во входной строке есть две обратные косые черты, то первая обратная косая черта выбирается как часть (.*) части. Протестируйте это на regexr.com если вы хотите узнать больше.

3. Я думаю, что ключом к пониманию вашего вопроса является знание того, что операторы регулярных выражений по умолчанию являются жадными. Таким образом, они попытаются сопоставить как можно больше перед остановкой.