Имя: Пароль:
1C
1С v8
Поиск в строке паттерна
0 дущ
 
09.11.11
00:47
Имеем паттерн, например (в терминах маски 1с) такой 9-999-999-99-99 (т.е. типичный номер телефона) и строку, например такую

тел. 8-926-913-98-53, Доставка желательно после 16,00, позвонить за 2 часа!

Нужно найти в строке соответствующий маске номер телефона. А именно в данном случае 8-926-913-98-53. Есть ли какая встроенная функция или старым добрым циклом

Для Ном = 1 По ДлинаСтроки(Стр) Цикл
  Символ = Сред(Стр, Ном, 1)
  Если Найти("0123456789", Символ) > 0 Тогда
и т.д.?
1 IamAlexy
 
09.11.11
00:49
Script = Новый COMОбъект("MSScriptControl.ScriptControl");
       Script.Language = "javascript";
       
       RegExp = Новый COMОбъект("VBScript.RegExp");    // создаем объект для работы с регулярными выражениями
       
       //Заполняем данные
       RegExp.MultiLine = Ложь;                  // истина — текст многострочный, ложь — одна строка
       RegExp.Global = Ложь;   // истина — поиск по всей строке, ложь — до первого совпадения
       RegExp.IgnoreCase = Ложь;        // истина — игнорировать регистр строки при поиске
       Массив = Новый Массив;
       
       
           
           RegExp.Pattern = "\b[0-9]{4}[-][0-9]{4}\b";
           Matches = RegExp.Execute (СтрИсточник);
           Для каждого Item Из Matches Цикл
               Массив.Добавить(Item.Value);
           КонецЦикла;
2 IamAlexy
 
09.11.11
00:49
паттерн свой конечно же сделай... - типическое выражение регекспа
3 Живой Ископаемый
 
09.11.11
00:49
не заданы условия... толщина клиента, на какой стороне выполняется код, если на серверной, то на какой ОС сервер...
без этого - в половине случаев любое предложенное будет работать неправильно...
4 дущ
 
09.11.11
01:11
Толстый. Файловая.
5 Живой Ископаемый
 
09.11.11
01:12
(4) тогда (1) годное
6 Живой Ископаемый
 
09.11.11
01:12
если конечно прав хватит в системе где выполняется толстый. :)
7 дущ
 
09.11.11
01:17
(6) вот это и беспокоит.
8 Armando
 
09.11.11
01:21
Давно мечтаю:
РегулярноеВыражение = Новый РегулярноеВыражение;
ну и дальше поехали
9 дущ
 
09.11.11
01:37
(8) +1. Методом из (1) ещё в семерке пользовались, прошло 10 лет так ничего и не изменилось.
10 МишельЛагранж
 
09.11.11
01:46
(9) почему же ничего? с УФ теперь 1С дает работу 2 млн программистов...вместо миллиона ранее...
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший