В том, что она почему-то захватывает иногда точку в самом конце . Например [email protected]. Как убрать точку?В чем заключается не верная отработка?
Вот еще например: регулярка пропускает такие сочетания user.options@0aplg68, [email protected]. Не подскажите, как сделать так, чтобы точка обязательно ставилась где-то после @, а также исключить любые символы кроме букв и цифр?\S+@\S+\.\S{2}- в том случае если ваши почты имеют только 2 символа после точки (.ru)
либо используйте вашу, но потом доп. обработкой убрать точку: \.(?=(\s|$))
Но в любом случае, для создания более точной регулярки нужно исходить из материала(контента), с которого нужно извлечь почтовики.
Дело в том, что я заходу каждый раз на абсолютно рандомные сайты, они все разные, и мне нужно по регулярке взять первое попавшееся совпадение. Пример таков:Не вижу точки после @ в примерах или я чего то не понял. Приведите ряд примеров, или лучше кусок контента из которого парсите почту.
Годно. Только я использовал регулярку из первого примера, убрал знаки "-" и вроде парсит как нужно. Решил обойтись без кода, так как C# только изучаю)http://stackoverflow.com/a/5342460/1574977
Не тестил, но что-то мне подсказывает, что всё будет хорошо, т.к. это внутри .net)
PS: хотя, конечно, это не поможет парсить адреса, но зато как валидатор - сгодится
^([\w\.]+)@([\w]+)((\.(\w){2,4})+)$
Такая регулярка не отпарсит мыла вида:Только я использовал регулярку из первого примера, убрал знаки "-" и вроде парсит как нужно.Код:^([\w\.]+)@([\w]+)((\.(\w){2,4})+)$
Из текста она вообще ничего не сможет выпарситьТакая регулярка не отпарсит мыла вида: