У меня есть список с такими строками:
103238704- | - | -INEEDTHIS- | -r4Vp5iL2VbM = - | - девичья фамилия | -
Есть ли способ в Notepad++ удалить все, кроме INEEDTHIS
?
INEEDTHIS
будет адрес электронной почты.
Тогда вы можете попробовать Regex следующим образом:
[0-9]{9}\-\|\-\-\|\-(\w+)\-\|\-.+\|\-[\w\ ]+\|\-\-
Это соответствует обе строки.
Вам придется заменить $1
, что будет желаемым значением.
Не удалось проверить на Notepad++, так как у меня его нет.
Но проверено на моем редакторе, PhpStrom.
Обновление: чтобы также соответствовать адресам электронной почты, лучше использовать это:
[0-9]{9}\-\|\-\-\|\-([\w\@\.]+)\-\|\-.+\|\-[\w\ ]+\|\-\-
Как насчет этого?
^(.*?)-\|-(.*?)-\|-(.*?)-\|-.*$
Заменить
$3
Это не делает никаких предположений о содержании подсовпадений между разделителями -|-
.
^(?:[^|]+\|-){2}([^|]+)-.+$
Это должно работать очень хорошо, пока ваш разделитель не изменится.
^
: начнем с самого начала(?:[^|]+\|-)
: соответствует всему, что не является символом канала, символом канала и последующим дефисом (из-за ?:
это группа без захвата){2}
: ровно 2 раза([^|]+)
: это ваш захваченный матч; соответствует всему, что не является символом трубы-.+$
: соответствует тире и каждому символу до конца строкиРаботает с каждым предоставленным вами образцом:
103238704- | - | -INEEDTHIS- | -r4Vp5iL2VbM = - | -имя | | 103238705- | - | -othertext- | -BB4e6X+b2xLioxG6CatHBw == - | -boyfriend | - 103251697- | - | -euniceknx@hotmail.com-|-ZI88rWBSuQPioxG6CatHBw==-|-twilight|-- 103238923- | - | -y-tomoko@nifty.com- | -/lC7pSicTTk = - | -???| - 103238922-|--|-ndenler@hotmail.com-|-78oCcp+nW7/ioxG6CatHBw==-|-|--