|
Как можно вытащить 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] - всего один валидный адрес :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |