<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wiki.kint.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D1%85_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9_%28RegExp%29_%D0%B2_1%D0%A1</id>
	<title>Использование регулярных выражений (RegExp) в 1С - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.kint.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D1%85_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9_%28RegExp%29_%D0%B2_1%D0%A1"/>
	<link rel="alternate" type="text/html" href="http://wiki.kint.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D1%85_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9_(RegExp)_%D0%B2_1%D0%A1&amp;action=history"/>
	<updated>2026-05-18T04:15:03Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.31.15</generator>
	<entry>
		<id>http://wiki.kint.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D1%85_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9_(RegExp)_%D0%B2_1%D0%A1&amp;diff=21548&amp;oldid=prev</id>
		<title>Павел Лазарев: Новая страница: «Категория:Примеры кода 1С  Источник: http://www.kb.mista.ru/article.php?id=698  Автор статьи: [http://www.forum.mista.ru/...»</title>
		<link rel="alternate" type="text/html" href="http://wiki.kint.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D1%85_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9_(RegExp)_%D0%B2_1%D0%A1&amp;diff=21548&amp;oldid=prev"/>
		<updated>2010-10-07T05:57:16Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&lt;a href=&quot;/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D0%BA%D0%BE%D0%B4%D0%B0_1%D0%A1&quot; title=&quot;Категория:Примеры кода 1С&quot;&gt;Категория:Примеры кода 1С&lt;/a&gt;  Источник: http://www.kb.mista.ru/article.php?id=698  Автор статьи: [http://www.forum.mista.ru/...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Категория:Примеры кода 1С]]&lt;br /&gt;
&lt;br /&gt;
Источник: http://www.kb.mista.ru/article.php?id=698&lt;br /&gt;
&lt;br /&gt;
Автор статьи: [http://www.forum.mista.ru/users.php?action=show&amp;amp;id=508 romix]&lt;br /&gt;
&lt;br /&gt;
Последняя редакция №8 от 02.09.08&lt;br /&gt;
&lt;br /&gt;
Ключевые слова: RegExp, Регулярные выражения&lt;br /&gt;
&lt;br /&gt;
==Использование регулярных выражений (RegExp) в 1С==&lt;br /&gt;
&lt;br /&gt;
Регулярные выражения (Regular Expressions) являются известным и мощным средством для поиска, тестирования и замены подстрок. Эта технология доступна и в 1С - через объект '''VBScript.RegExp'''. Нужный объект уже встроен в современные версии Windows (начиная с Windows 98), и устанавливать дополнительно ничего не нужно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Приведенные ниже примеры были протестированы в 1С:Предприятие 7.7; для 1С:Предприятие 8.x изменяется способ создания объекта:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=1c&amp;gt;&lt;br /&gt;
RegExp = Новый COMОбъект(&amp;quot;VBScript.RegExp&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кроме того, там уже есть логические константы Истина и Ложь - объявлять их не нужно.&lt;br /&gt;
&lt;br /&gt;
Более подробное описание самой технологии RegExp (что означают те или иные значки или скобочки, или какие шаблоны поиска или замены можно использовать в типичных ситуациях) можно найти в специальной литературе (например Бен Форта &amp;quot;Освой самостоятельно регулярные выражения (regexp) за 10 минут&amp;quot;) или на сайтах в сети Internet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=1c&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////////////&lt;br /&gt;
//Поиск вхождений подстроки&lt;br /&gt;
Процедура RegExp_Exec()&lt;br /&gt;
    &lt;br /&gt;
    //Для 1С 7.7:&lt;br /&gt;
    Истина=-1;&lt;br /&gt;
    Ложь=0;&lt;br /&gt;
    RegExp = CreateObject(&amp;quot;VBScript.RegExp&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    RegExp.IgnoreCase = Ложь; //Игнорировать регистр&lt;br /&gt;
    RegExp.Global = Истина; //Поиск всех вхождений шаблона&lt;br /&gt;
    RegExp.MultiLine = Ложь; //Многострочный режим&lt;br /&gt;
    &lt;br /&gt;
    RegExp.Pattern = &amp;quot;&amp;lt;[^&amp;gt;]*&amp;gt;&amp;quot;; //Ищем теги HTML&lt;br /&gt;
    Matches=RegExp.Execute(&amp;quot;Это &amp;lt;hr&amp;gt; строка &amp;lt;br&amp;gt; с тегами HTML&amp;quot;);&lt;br /&gt;
    ЧислоВхождений=Matches.Count();&lt;br /&gt;
    Если ЧислоВхождений&amp;gt;0 Тогда &lt;br /&gt;
        Для к = 0 По ЧислоВхождений-1 Цикл&lt;br /&gt;
            Match = Matches.Item(к);&lt;br /&gt;
            Сообщить(&amp;quot;Найден тег:&amp;quot;+ Match.Value);&lt;br /&gt;
        КонецЦикла;&lt;br /&gt;
    Иначе&lt;br /&gt;
        Сообщить(&amp;quot;Вхождений шаблона не найдено&amp;quot;);&lt;br /&gt;
    КонецЕсли;&lt;br /&gt;
    //Выдаст в окно сообщений:    &lt;br /&gt;
    //Найден тег:&amp;lt;hr&amp;gt;&lt;br /&gt;
    //Найден тег:&amp;lt;br&amp;gt;    &lt;br /&gt;
КонецПроцедуры&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Более продвинутый пример разбора HTML использует подвыражения (SubMatches) и позволяет находить как сами теги, так и текст между ними.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=1c&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////////////&lt;br /&gt;
//Поиск вхождений подстроки с использованием подвыражений&lt;br /&gt;
Процедура RegExp_Exec1()&lt;br /&gt;
    &lt;br /&gt;
    //Для 1С 7.7:&lt;br /&gt;
    Истина=-1;&lt;br /&gt;
    Ложь=0;&lt;br /&gt;
    RegExp = CreateObject(&amp;quot;VBScript.RegExp&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    RegExp.IgnoreCase = Ложь; //Игнорировать регистр&lt;br /&gt;
    RegExp.Global = Истина; //Поиск всех вхождений шаблона&lt;br /&gt;
    RegExp.MultiLine = Ложь; //Многострочный режим&lt;br /&gt;
    &lt;br /&gt;
    RegExp.Pattern = &amp;quot;([^&amp;lt;]*)(&amp;lt;[^&amp;gt;]*&amp;gt;)([^&amp;lt;]*)&amp;quot;; //Ищем теги HTML, а также текст до и после тега&lt;br /&gt;
    Matches=RegExp.Execute(&amp;quot;  &amp;lt;tr&amp;gt;&amp;lt;td id=aaa&amp;gt;Дятел &amp;lt;td&amp;gt; долбит &amp;lt;td&amp;gt; сосну &amp;lt;/tr&amp;gt;&amp;quot;);&lt;br /&gt;
    ЧислоВхождений=Matches.Count();&lt;br /&gt;
    Если ЧислоВхождений&amp;gt;0 Тогда &lt;br /&gt;
        Для к = 0 По ЧислоВхождений-1 Цикл&lt;br /&gt;
            Match = Matches.Item(к);&lt;br /&gt;
            &lt;br /&gt;
            SubMatches = Match.SubMatches;&lt;br /&gt;
            ЧислоПодвыражений=SubMatches.Count();&lt;br /&gt;
            Для н = 0 По ЧислоПодвыражений-1 Цикл&lt;br /&gt;
                SubMatch=SubMatches.Item(н);&lt;br /&gt;
                Если SubMatch=&amp;quot;&amp;quot; Тогда&lt;br /&gt;
                    Продолжить;&lt;br /&gt;
                КонецЕсли;    &lt;br /&gt;
                &lt;br /&gt;
                Сообщить(&amp;quot;Подстрока: &amp;quot;+SubMatch);&lt;br /&gt;
            КонецЦикла;    &lt;br /&gt;
        КонецЦикла;&lt;br /&gt;
    Иначе&lt;br /&gt;
        Сообщить(&amp;quot;Вхождений шаблона не найдено&amp;quot;);&lt;br /&gt;
    КонецЕсли;&lt;br /&gt;
КонецПроцедуры&lt;br /&gt;
&lt;br /&gt;
//Выводит в окно сообщений:&lt;br /&gt;
//Подстрока:   &lt;br /&gt;
//Подстрока: &amp;lt;tr&amp;gt;&lt;br /&gt;
//Подстрока: &amp;lt;td id=aaa&amp;gt;&lt;br /&gt;
//Подстрока: Дятел &lt;br /&gt;
//Подстрока: &amp;lt;td&amp;gt;&lt;br /&gt;
//Подстрока:  долбит &lt;br /&gt;
//Подстрока: &amp;lt;td&amp;gt;&lt;br /&gt;
//Подстрока:  сосну &lt;br /&gt;
//Подстрока: &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Часто регулярные выражения используются для тестирования строк, например пользовательского ввода.&lt;br /&gt;
Этот пример позволяет узнать, является ли строка целым числом.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=1c&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////////////&lt;br /&gt;
//Проверка подстроки&lt;br /&gt;
Процедура RegExp_Test()&lt;br /&gt;
    RegExp = CreateObject(&amp;quot;VBScript.RegExp&amp;quot;);&lt;br /&gt;
    RegExp.Pattern =  &amp;quot;^\d+$&amp;quot;; //Шаблон, который соответствует целому числу&lt;br /&gt;
    стр=&amp;quot;12345&amp;quot;;//Строка, которую тестируем&lt;br /&gt;
    Если RegExp.Test(стр)=0 Тогда&lt;br /&gt;
        Сообщить(&amp;quot;Это не целое число&amp;quot;);&lt;br /&gt;
    Иначе&lt;br /&gt;
        Сообщить(&amp;quot;Это целое число&amp;quot;);&lt;br /&gt;
    КонецЕсли;&lt;br /&gt;
    //Выдаст в окно сообщений:    &lt;br /&gt;
    //&amp;quot;Это целое число&amp;quot;&lt;br /&gt;
КонецПроцедуры&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Регулярные выражения поддерживают не только поиск, но и замену текста. При этом найденные подвыражения (в круглых скобках) могут быть представлены в строке замены как $1, $2 и т. д.&lt;br /&gt;
(знак доллара используется в VBScript.RegExp; в других средах программирования, например в JavaScript, используемый для этой цели символ может отличаться).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=1c&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////////////&lt;br /&gt;
//Замена текста в подстроке&lt;br /&gt;
Процедура RegExp_Replace()&lt;br /&gt;
    &lt;br /&gt;
    //Строка, где мы будем производить замены&lt;br /&gt;
    стр=&amp;quot;Дятел долбил сосну&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    Истина=-1;&lt;br /&gt;
    Ложь=0;&lt;br /&gt;
    RegExp = CreateObject(&amp;quot;VBScript.RegExp&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    RegExp.IgnoreCase = Истина; //Игнорировать регистр&lt;br /&gt;
    RegExp.Global = Истина; //Поиск всех вхождений шаблона&lt;br /&gt;
    RegExp.MultiLine = Истина; //Многострочный режим&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    RegExp.Pattern = &amp;quot;(долбил)&amp;quot;; &lt;br /&gt;
    &lt;br /&gt;
    стр=RegExp.Replace(стр, &amp;quot;про$1&amp;quot;); &lt;br /&gt;
    Сообщить(стр);&lt;br /&gt;
    //Выдаст в окно сообщений:    &lt;br /&gt;
    //&amp;quot;Дятел продолбил сосну&amp;quot;&lt;br /&gt;
КонецПроцедуры&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ссылки==&lt;br /&gt;
&lt;br /&gt;
Александр Шабля &amp;quot;Использование VBScript RegExp в Delphi&amp;quot;&lt;br /&gt;
http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=1062&lt;br /&gt;
&lt;br /&gt;
Здесь вы найдете примеры использования регулярных выражений&lt;br /&gt;
http://regexp.by.ru/&lt;br /&gt;
&lt;br /&gt;
Notepad++ - удобный текстовый редактор, который поддерживает поиск и замену с использованием регулярных выражений.&lt;br /&gt;
http://notepad-plus.sourceforge.net/ru/site.htm&lt;/div&gt;</summary>
		<author><name>Павел Лазарев</name></author>
		
	</entry>
</feed>