Как можно вытащить e-mail из текста? #810035


#0 by ИС-2
Есть кусок текста в котором содержиться адрес электронной почты. Самый простой способ просто сделать стрнайти(текст,"@"). Но формат может измениться, да и охото попробовать новые способы. Можно вытащить текст через регулярные выражения?
#1 by vicof
Можно. И регулярка будет очень простая.
#2 by vde69
регулярка гуглится за 1 мин "[+0-9A-z._-]{1;}@[A-z.]{1;}"
#3 by kennetmccormick
заменить пробелы на символыПС. перебирать строки и искать вхождение
#4 by Вафель
полноценный регэксп на имэйл выглядит немного не так )))
#5 by Cyberhawk
А как регексп в веб-клиенте или под линем сделать чтоб работал в 1С?
#6 by Волшебник
не налегайте на замороченные регулярные выражения.
#7 by Вафель
тут на валидация, а поиск - немного другая задача
#8 by ИС-2
примеры по проверке есть, а вот мне надо именно извлечь e-mail
#9 by Вафель
Есть regexp.test, а есть regexp.match
#10 by Timon1405
#11 by Сияющий в темноте
Зачем регэкспы ? Найти в тексте, где живут @ (конечно, их могут заменить на %40, но это маловероятно). Далее, отступить назад до первого пробела (если встретятся кавычки, то экранировать пробелы - по желанию) и найти первый символ, не являющийся почтовым адресом после @. Вперёд тоже нужно отступать до первого недопустимого символа. Например, vasya@mail.com,petya@mail.com,senya@mail.com - три адреса.
#12 by ИС-2
в продолжении темы. Надо в огромном модуле (>10000 строк) произвести замену конструкций типа Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("168") т.е может быть название абсолютно любого справочника, на вызов функции повторного использования _ПовтИсп.ПолучитьЭлементПоКоду("КлассификаторЕдиницИзмерения","168") т.е мне надо найти все строки, где есть текст Справочники и НайтиПоКоду с помощью какого механизма можно это сделать ?
#13 by Скиурус
а vasya@mail.com,petya@mail.com,senya@mail.com - всего один валидный адрес :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям