|
Поиск в строке паттерна |
☑ |
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 млн программистов...вместо миллиона ранее...
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший