Помогите с регуляркой

  • Автор темы Автор темы dihard
  • Дата начала Дата начала

dihard

Client
Регистрация
08.11.2019
Сообщения
318
Реакции
51
Баллы
28
Помогите с регуляркой
Есть много строк надо найти строки вида
hello@foxmail.com,foxmail.com,0,The Address is Valid and Safe
и найти почту, в данном случае hello@foxmail.com
 
C#:
Развернуть Свернуть Копировать
[\w\._-]+@[\w\._-]+\.[\w]{2,6}
Спасибо большое, но как сделать чтобы искал только строки которые заканчиваются на The Address is Valid and Safe с этой регуляркой, так он будет искать почту на всех строках.
 
C#:
Развернуть Свернуть Копировать
[\w\._-]+@[\w\._-]+\.[\w]{2,6}.*?The Address is Valid and Safe
Спасибо, но теперь он ищет, но не отсекает. сейчас результат
hello@foxmail.com,foxmail.com,0,The Address is Valid and Safe
Нужный результат
hello@foxmail.com
Странно первая регулярка хорошо отсекала ненужную фразу
 
если паттерн всегда 1, который разделен запятой, то проще дробить строку по ней.

C#:
Развернуть Свернуть Копировать
var email = "hello@foxmail.com,foxmail.com,0,The Address is Valid and Safe".Split(',')[0];
return email;

результат

если принципиально регулярка, то замените метод Split на:
C#:
Развернуть Свернуть Копировать
Regex.Match("hello@foxmail.com,foxmail.com,0,The Address is Valid and Safe", "[^,]+");

если не понимаете C#, то:

77225


или

77226
 
Последнее редактирование:
  • Спасибо
Реакции: dihard
Так отсекает.

Код:
Развернуть Свернуть Копировать
[\w\._-]+@[\w\._-]+\.[\w]{2,6}(?=[\s\S]+The Address is Valid and Safe)
 
  • Спасибо
Реакции: dihard

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)