Как построить регулярное выражение чтобы оно сравнивало текст до и почередно:
Тоесть так: one1:text1 one1:text2
one3:text1
one2:text3
one2:text1
one4:text1
Это сложная логика, регулярным выражением такое не сделать. Нужно писать свой небольшой скрипт-парсер.
Либо (если с программированием туго) воспользоваться другими инструментами. Например, Google Sheets. Чтобы понимать все шаги и как работают формулы, сделаем через множество столбцов:
Копируем текст в гугл-таблицу.
spoiler
В следующий столбец вводим формулу =LEFT(A1;4), которая возьмёт нужное нам количество символов.
spoiler
Растягиваем (распространяем) эту формулу вниз, чтобы заполнить весь столбец.
spoiler
В следующем столбце аналогично вводим и растягиваем формулу =COUNTIF(B:B;B1)
spoiler
Далее, аналогично вводим и растягиваем формулу, которая выведет нам нужны строки по условию =IF(C1=1;A1;"")
spoiler
Осталось скопировать последний столбец обратно в Notepad++ и убрать пустые строки.
Тут хватит и одного Notepad++ без Google Sheets.
Меню Правка -> Операции со строками -> Сорт. по возрастанию и уже после сортировки все дубли будут рядом.
Шаблон поиска (?-s)^([^:]+:).*(\R\1.*)+\R?, а строку замены оставить пустой. https://regex101.com/r/hBHTBI/1