Giter VIP home page Giter VIP logo

1c_regexp's Introduction

Подсистема "Регулярка"

Работа с регулярными выражениями средствами платформы 1С:Предриятие

Доступный функционал:

  • построение процессора регулярного выражения по шаблону
  • проверка полного соответствия текста регулярному выражению
  • поиск вхождений в тексте по регулярному выражению

Реализованы следующие элементы построения регулярных выражений:

  • операции: |, ()
  • квантификаторы: *, +, ?, {n}, {, n}, {n, }, {n, m}
  • символы: ., \, \t, \n, \r, \f, \a, \e, \xhh, \uhhhh
  • классы символов: [abc], [^x-z]
  • предопределённые классы символов: \d, \D, \h, \H, \s, \S, \v, \V, \w, \W

Подсистема обходится исключительно средствами платформы 1С. Отрабатывает на клиенте и сервере.

В основе движка подсистемы недетерминированный конечный автомат. PDF презентации по материалам книги Роберта Сэджвика и Кевина Уэйна.

Разрабатывается на платформах 8.3.21.1302 и 8.3.10.2667

Требуемая минимальная версия: 8.3.6

Требуемая минимальная версия расширения: 8.3.9

Ограничения платформы можно существенно снизить вплоть до 8.1, избавившись от типов Фиксированных коллекций и функции СтрСоединить.

Пример кода

Проверка соответствия всей строки шаблону (процессор можно переиспользовать):

Шаблон = "(A*B|\d)D";
Процессор = Регулярка.ПроцессорРаспознавания(Шаблон);

Сообщить(Регулярка.Распознано(Процессор, "D")); // Ложь
Сообщить(Регулярка.Распознано(Процессор, "3D")); // Истина
Сообщить(Регулярка.Распознано(Процессор, "BD")); // Истина
Сообщить(Регулярка.Распознано(Процессор, "AD")); // Ложь
Сообщить(Регулярка.Распознано(Процессор, "AAAAAABD")); // Истина

Поиск вхождений в тексте:

Процессор = Регулярка.ПроцессорРаспознавания("\n");

Текст =
    "Белеет парус одинокой
    |В тумане моря голубом. —
    |Что ищет он в стране далекой?
    |Что кинул он в краю родном?";

Вхождения = Регулярка.Вхождения(Процессор, Текст);

1c_regexp's People

Contributors

ndspacehead avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

1c_regexp's Issues

Не могу получить группу регулярного выражения

ПроцессорРаспознавания = Регулярка.ПроцессорРаспознавания("(\d{10})\w+");
Текст = "1234567891fjnjisfiwenrfg";

Вх = Регулярка.Вхождения(ПроцессорРаспознавания, Текст);

Для Каждого В из ВХ Цикл
Сообщить(В.Значение);
КонецЦикла;

Не могу получить группу, Регулярка.Вхождения(ПроцессорРаспознавания, Текст) возвращает только совпадение без группы.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.