Отдел продаж:

Регулярные выражения для парсинга технологического журнала 1С

Данная статья – это мои заметки для подготовки к экзамену 1С:Эксперт по технологическим вопросам, в статье присутствуют ссылки на первоисточники.

Для анализа в Windows можно использовать следующие варианты:

  1. Git (bash) – эмулятор консоли
  2. Расшарить папку по сети и подключить ее на машине с Linux (этот способ я использовал для подготовки к 1С:Эксперту)
  3. Notepad++ для небольших объемов технологического журнала

Полное руководство по основам регулярных выражений можно найти в статье на Хабре – Регулярные выражения (regexp) — основы (ссылка https://habr.com/ru/articles/545150/), а далее представлены выдержки из этой статьи необходимы для подготовки к 1С:Эксперту

Регулярные выражения (кратко)

Метасимволы

(точка) . – любой символ

\s или [ \f\n\r\t\v] – пробельный символ

\S или [ ^\f\n\r\t\v] – не пробельный символ

\w или [[:word:]] – буквенный или цифровой символ или знак подчёркивания

\W или [^[:word:]] – любой символ кроме буквенного или цифрового символа или знак подчёркивания

\d или [0-9] – цифровой символ

\D или [^0-9] – нецифровой символ

\b – означает границу слова – пробел, табуляция или перевод строки, в том числе и начало строки

Квантификаторы (количество повторений)

(звездочка) * – предшествующий символ может повторяться от 0 до бесконечности

(плюс) + – предшествующий символ может повторяться от 1 раза до бесконечности

(вопрос) ? – предшествующий символ либо есть, либо его нет

{n} – предшествующий символ повторяется n раз

{n1,n2} – предшествующий символ повторяется от n1 до n2 раз

Конструкции для парсинга технологического журнала 1С

grep

Найти все события CALL и SCALL

grep -P ‘,S?CALL,’ –color

Найти все события CALL с Context

grep -P ‘,CALL,.*Context=’ –color

Найти события TLOCK и TDEADLOCK

grep -P ‘,T(DEAD)?LOCK’ –color или grep -P ‘,T.{0,4}LOCK’ –color или grep -P ‘,T(DEAD|)LOCK’ –color

Найти все события TDEADLOCK и TTIMEOUT

grep -P ‘T(DEADLOCK|TIMEOUT)’ –color

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *