Из списка, как сохранить все вхождения только тех строк, чья "первая часть или начало" (определяемая от начала строки до символа ^
) присутствует в других строках? (Шаблон строк в списке: начало строки^
rest_of_line_012345)
Тип символов, длина и т. д. после ^
не имеют значения (но их необходимо сохранить). В каждой строке есть только один (1) символ ^
. "Начальная" строка, определяющая идентификатор, должна присутствовать в той же (аналогичной) позиции в других строках (т. е. от начала строки до ^
и должна быть полным соответствием). (Строки содержат символы, которые мешают регулярному выражению, такие как \/()*.
, поэтому их необходимо экранировать.)
Например: Исходный список:
abc^123
0xyz^xxx
aaa-123^123
aaa-12^0xyz
0xyz^098
00xyz^098
0xyz^x111xx
Сохраняйте все вхождения строк с одинаковой первой частью:
0xyz^xxx
0xyz^098
0xyz^x111xx
Этот элегантный сценарий от @Lars Fischer ((.*)\R(\2\R?)+)*\K.*
(после предварительной сортировки) сохраняет все вхождения повторяющихся строк, но учитывает всю строку (это было разработано для этого).
В этом вопросе я ищу решение, которое учитывает только «начало» строки, чтобы увидеть, встречается ли оно более одного раза, и если да, то сохранить всю строку. Любое руководство?