Имеем паттерн, например (в терминах маски 1с) такой 9-999-999-99-99 (т.е. типичный номер телефона) и строку, например такую
тел. 8-926-913-98-53, Доставка желательно после 16,00, позвонить за 2 часа!
Нужно найти в строке соответствующий маске номер телефона. А именно в данном случае 8-926-913-98-53. Есть ли какая встроенная функция или старым добрым циклом
Для Ном = 1 По ДлинаСтроки(Стр) Цикл
Символ = Сред(Стр, Ном, 1)
Если Найти("0123456789", Символ) > 0 Тогда
и т.д.?
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);
КонецЦикла;
не заданы условия... толщина клиента, на какой стороне выполняется код, если на серверной, то на какой ОС сервер...
без этого - в половине случаев любое предложенное будет работать неправильно...
(9) почему же ничего? с УФ теперь 1С дает работу 2 млн программистов...вместо миллиона ранее...
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший