Удалить строки с одинаковым расширением внутри каждого тега <title> - Регулярное выражение

Я создаю список отчетов с Winrar.
Внутри этого списка у меня есть такой текстовый список

<tag>Adventures of Shuggy</tag>
!Shuggy.png
!Sound Bank.txt
4.lwav
5.lwav
6.lwav
88.lwav
89.lwav
<tag>Adventures of Jack</tag>
90.lwav
91.lwav
92.lwav
93.lwav
!Sound Bank.xsb

Я хочу удалить дубликаты расширений внутри каждого тега и иметь такой текст:

<tag>Adventures of Shuggy</tag>
!Shuggy.png
!Sound Bank.txt
4.lwav
<tag>Adventures of Jack</tag>
90.lwav
!Sound Bank.xsb

или даже лучше

<tag>Adventures of Shuggy</tag>
.png
.txt
.lwav
 <tag>Adventures of Jack</tag>
.xsb

Есть ли регулярное выражение для использования в notepad++ для удаления строк с одинаковым .txt или идентичным .lwav внутри каждого тега, например <title>?
Могу ли я использовать Excel для этого?

1 ответ

Решение

Бросил это очень быстро. Должен нормально работать в блокноте ++. Обязательно установите глобальный флаг (если он есть) и многострочный.

/^.+(\.[^.]+)$(?=\s*(?:(?!<tag>)[^.])+\1)|^(?!<tag>)[^.]+/gm

Вы не должны (скорее всего) использовать флаги и разделители, как у меня выше. Я уверен, что вы поймете это.

Объяснение + демо: http://regex101.com/r/lC0lD1

Другие вопросы по тегам