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

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

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

Например, [email protected],[email protected],[email protected] - три адреса.
12 ИС-2
 
naïve
03.01.18
22:45
в продолжении темы.

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

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

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

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

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

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