-1

У меня есть список с такими строками:

103238704- | - | -INEEDTHIS- | -r4Vp5iL2VbM = - | - девичья фамилия | -

Есть ли способ в Notepad++ удалить все, кроме INEEDTHIS?

INEEDTHIS будет адрес электронной почты.

3 ответа3

0

Тогда вы можете попробовать Regex следующим образом:

[0-9]{9}\-\|\-\-\|\-(\w+)\-\|\-.+\|\-[\w\ ]+\|\-\-

Это соответствует обе строки. Вам придется заменить $1 , что будет желаемым значением. Не удалось проверить на Notepad++, так как у меня его нет. Но проверено на моем редакторе, PhpStrom.

Обновление: чтобы также соответствовать адресам электронной почты, лучше использовать это:

[0-9]{9}\-\|\-\-\|\-([\w\@\.]+)\-\|\-.+\|\-[\w\ ]+\|\-\-
0

Как насчет этого?

^(.*?)-\|-(.*?)-\|-(.*?)-\|-.*$

Заменить

$3

Это не делает никаких предположений о содержании подсовпадений между разделителями -|- .

0
^(?:[^|]+\|-){2}([^|]+)-.+$

Это должно работать очень хорошо, пока ваш разделитель не изменится.

  1. ^: начнем с самого начала
  2. (?:[^|]+\|-): соответствует всему, что не является символом канала, символом канала и последующим дефисом (из-за ?: это группа без захвата)
  3. {2}: ровно 2 раза
  4. ([^|]+): это ваш захваченный матч; соответствует всему, что не является символом трубы
  5. -.+$: соответствует тире и каждому символу до конца строки

Работает с каждым предоставленным вами образцом:

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==-|-|--

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .