Вход | Регистрация


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

Как можно вытащить e-mail из текста?
Я
   ИС-2
 
11.12.17 - 14:26
Есть кусок текста в котором содержиться адрес электронной почты. Самый простой способ просто сделать стрнайти(текст,"@"). Но формат может измениться, да и охото попробовать новые способы.

Можно вытащить текст через регулярные выражения?
 
 
   vicof
 
1 - 11.12.17 - 14:44
Можно. И регулярка будет очень простая.
   vde69
 
Модератор
2 - 11.12.17 - 14:47
(1) регулярка гуглится за 1 мин
"[+0-9A-z._-]{1;}\@[A-z.]{1;}"
   kennetmccormick
 
3 - 11.12.17 - 14:50
заменить пробелы на символыПС. перебирать строки и искать вхождение
   Вафель
 
4 - 11.12.17 - 15:00
(2) полноценный регэксп на имэйл выглядит немного не так )))
   Cyberhawk
 
5 - 11.12.17 - 15:03
А как регексп в веб-клиенте или под линем сделать чтоб работал в 1С?
   Волшебник
 
Модератор
6 - 11.12.17 - 15:06
(4) не налегайте на замороченные регулярные выражения.
https://habrahabr.ru/post/175375/
   Вафель
 
7 - 11.12.17 - 15:23
тут на валидация, а поиск - немного другая задача
   ИС-2
 
8 - 11.12.17 - 15:41
(1) примеры по проверке есть, а вот мне надо именно извлечь e-mail
   Вафель
 
9 - 11.12.17 - 15:42
(8) Есть regexp.test, а есть regexp.match
   Timon1405
 
10 - 11.12.17 - 15:54
RegExp = Новый COMОбъект("VBScript.RegExp");
RegExp.IgnoreCase = Истина;//Игнорировать регистр

RegExp.Global = Истина;//Поиск всех вхождений шаблона

RegExp.MultiLine = Ложь;//Многострочный режим

RegExp.Pattern = "([+0-9A-z._-]+)@([A-z.]+)";
СтрВход = "123@mail.ru";

Массив =RegExp.Execute(СтрВход);
Если Массив.Count() Тогда
    
    МассивТогоЧтоВСкобках=Массив.Item(0).SubMatches;
    ДоСобаки =МассивТогоЧтоВСкобках.Item(0);
    ПослеСобаки=МассивТогоЧтоВСкобках.Item(1);
    
КонецЕсли
 
 Рекламное место пустует
   Сияющий в темноте
 
11 - 11.12.17 - 16:35
Зачем регэкспы ?
Найти в тексте, где живут @ (конечно, их могут заменить на %40, но это маловероятно). Далее, отступить назад до первого пробела (если встретятся кавычки, то экранировать пробелы - по желанию) и найти первый символ, не являющийся почтовым адресом после @.
Вперёд тоже нужно отступать до первого недопустимого символа.

Например, vasya@mail.com,petya@mail.com,senya@mail.com - три адреса.
   ИС-2
 
12 - 03.01.18 - 22:45
в продолжении темы.

Надо в огромном модуле (>10000 строк) произвести замену
конструкций типа 

Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("168")

т.е может быть название абсолютно любого справочника, на вызов функции повторного использования

_ПовтИсп.ПолучитьЭлементПоКоду("КлассификаторЕдиницИзмерения","168")

т.е мне надо найти все строки, где есть текст Справочники и НайтиПоКоду

с помощью какого механизма можно это сделать ?
   Скиурус
 
13 - 04.01.18 - 08:36
(11) а vasya\@mail.com\,petya\@mail.com\,senya@mail.com - всего один валидный адрес :)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует