![]() |
|
Поиск в строке паттерна | ☑ | ||
---|---|---|---|---|
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 млн программистов...вместо миллиона ранее...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |