Книга знаний

1С:Предприятие / Приемы программирования

Использование RegExp в 1С

Автор статьи: romix | Редакторы:
Последняя редакция №3 от 20.08.08 | История
URL: http://kb.mista.ru/article.php?id=698

Ключевые слова: RegExp, Регулярные выражения


///////////////////////////////////////////////////////////////////////
//Поиск вхождений подстроки
Процедура RegExp_Exec()
   
   //Для 1С 7.7:
   Истина=-1;
   Ложь=0;
   RegExp = CreateObject("VBScript.RegExp");
   //Для 1С 8.x: RegExp = Новый COMОбъект("VBScript.RegExp");
   
   RegExp.IgnoreCase = Ложь; //Игнорировать регистр
   RegExp.Global = Истина; //Поиск всех вхождений шаблона
   RegExp.MultiLine = Ложь; //Многострочный режим
   
   RegExp.Pattern = "<[^>]*>"; //Ищем теги HTML
   Matches=RegExp.Execute("Это <hr> строка <br> с тегами HTML");
   ЧислоВхождений=Matches.Count();
   Если ЧислоВхождений>0 Тогда
       Для к = 0 По ЧислоВхождений-1 Цикл
           Match = Matches.Item(к);
           Сообщить("Найден тег:"+ Match.Value);
       КонецЦикла;
   Иначе
       Сообщить("Вхождений шаблона не найдено");
   КонецЕсли;
   //Выдаст в окно сообщений:    
   //Найден тег:<hr>
   //Найден тег:<br>    
КонецПроцедуры



///////////////////////////////////////////////////////////////////////
//Проверка подстроки
Процедура RegExp_Test()
   RegExp = CreateObject("VBScript.RegExp");
   RegExp.Pattern =  "^\d+$"; //Шаблон, который соответствует целому числу
   стр="12345";//Строка, которую тестируем
   Если RegExp.Test(стр)=0 Тогда
       Сообщить("Это не целое число");
   Иначе
       Сообщить("Это целое число");
   КонецЕсли;
   //Выдаст в окно сообщений:    
   //"Это целое число"
КонецПроцедуры


///////////////////////////////////////////////////////////////////////
//Замена текста в подстроке
Процедура RegExp_Replace()
   
   //Строка, где мы будем производить замены
   стр="Дятел долбил сосну";
   
   Истина=-1;
   Ложь=0;
   RegExp = CreateObject("VBScript.RegExp");
   
   RegExp.IgnoreCase = Истина; //Игнорировать регистр
   RegExp.Global = Истина; //Поиск всех вхождений шаблона
   RegExp.MultiLine = Истина; //Многострочный режим
   
   
   RegExp.Pattern = "(долбил)";
   
   //$1, $2 и т.д. - найденные элементы подстроки в скобках - подробности в описании RegExp
   стр=RegExp.Replace(стр, "про$1");
   Сообщить(стр);
   //Выдаст в окно сообщений:    
   //"Дятел продолбил сосну"
КонецПроцедуры

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика