Специфика символов в 1С
В 1С для представления символов новой строки и других управляющих символов, таких как табуляция, вертикальная табуляция и т. д., используются специальные константы, доступные через объект Символы
. Это значительно отличается от стандартных символов, таких как \n
(новая строка) или \t
(табуляция), используемых в других языках программирования.
В 1С для текста используются следующие символы:
Символы.ПС
— символ новой строки (LF).Символы.ВК
— символ возврата каретки (CR).Символы.Таб
— горизонтальная табуляция (Tab).Символы.ВТаб
— вертикальная табуляция (Vertical Tab).Символы.ПФ
— символ перевода страницы (FF).Символы.НПП
— неразрывный пробел (NBSP).
Понимание этих символов важно при написании регулярных выражений в 1С, так как они могут существенно отличаться от обычных символов, представленных в других языках программирования.
Адаптация регулярных выражений для 1С
Часто при написании регулярных выражений в других языках программирования используется символ \n
для новой строки и \t
для табуляции. Однако в 1С такие символы нужно заменять на соответствующие константы, такие как Символы.ПС
и Символы.Таб
.
Предположим, вам нужно создать регулярное выражение для поиска двух последовательных пустых строк в конце текста. В обычных языках программирования это может выглядеть так:
(\r?\n){2}$
Однако для работы в 1С это выражение должно быть адаптировано, чтобы учитывать специфику платформы. Вот пример функции, которая подготавливает регулярное выражение для работы в 1С, заменяя стандартные символы на константы:
Функция для подготовки регулярного выражения в 1С
Функция ПодготовитьРегуляркуДля1С(Регулярка)
// Заменяем символы на соответствующие 1С эквиваленты
Регулярка = СтрЗаменить(Регулярка, "\n", Символы.ПС); // ПС (LF)
Регулярка = СтрЗаменить(Регулярка, "\r", Символы.ВК); // ВК (CR)
Регулярка = СтрЗаменить(Регулярка, "\t", Символы.Таб); // Таб
Регулярка = СтрЗаменить(Регулярка, "\v", Символы.ВТаб); // ВТаб (Vertical Tab)
Регулярка = СтрЗаменить(Регулярка, "\f", Символы.ПФ); // ПФ (FF)
Регулярка = СтрЗаменить(Регулярка, "\u00A0", Символы.НПП); // NBP (Non-Breaking Space)
Возврат Регулярка;
КонецФункции
Как это работает
-
В этой функции мы используем стандартную функцию
СтрЗаменить
для замены символов регулярного выражения на их соответствующие аналоги в 1С. Например,\n
заменяется наСимволы.ПС
(символ новой строки), а\r
— наСимволы.ВК
(возврат каретки). -
Функция выполняет замену для всех распространенных управляющих символов:
\n
наСимволы.ПС
(LF),\r
наСимволы.ВК
(CR),\t
наСимволы.Таб
(Tab),\v
наСимволы.ВТаб
(Vertical Tab),\f
наСимволы.ПФ
(FF),\u00A0
наСимволы.НПП
(Non-Breaking Space).
-
После выполнения этой функции, вы получите адаптированное регулярное выражение, готовое для использования в 1С.
Пример использования
Если у вас есть регулярное выражение для поиска двух последовательных пустых строк в конце текста:
(\r?\n){2}$
После применения функции ПодготовитьРегуляркуДля1С
, результат будет таким:
(Символы.ВК?Символы.ПС){2}$
Это выражение теперь корректно работает в 1С, учитывая специфику платформы.
Заключение
При работе с регулярными выражениями в 1С важно учитывать специфику символов новой строки и других управляющих символов, используемых в платформе. С помощью простого подхода, как показано в статье, можно адаптировать стандартные регулярные выражения для корректной работы в 1С, что делает обработку текстов более удобной и эффективной.