На этой странице представлены примеры правильного экранирования при использовании регулярных выражений в различных контекстах.
При использовании конструктора триггерных выражений правильное экранирование в регулярных выражениях добавляется автоматически.
Пользовательский макрос с контекстом
Регулярное выражение: \.+\"[a-z]+
Пользовательский макрос с контекстом: {$MACRO:regex:"\.+\\"[a-z]+"}
Замечания:
Функция макросов в параметре ключа элемента данных
Регулярное выражение: .+:(\d+)$
Ключ элемента данных: net.tcp.service[tcp,,"{{ITEM.VALUE}.regsub(\".+:(\d+)$\",\1)}"]
Замечания: - регулярное выражение внутри функции макросов regsub
заключается в двойные кавычки (из-за того, что содержит закрывающие скобки); - Символы кавычек, обрамляющие регулярное выражение, экранируются (из-за того, что весь третий параметр элемента данных заключается в кавычки); - третий параметр ключа элемента данных заключается в кавычки, поскольку он содержит запятую.
Функция макросов низкоуровневого обнаружения (LLD)
Регулярное выражение: \.+\"([a-z]+)
Макрос LLD: {{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}
Замечания:
Функция макросов LLD внутри контекста пользовательского макроса
Регулярное выражение: \.+\"([a-z]+)
Макрос LLD: {{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}
Пользовательский макрос с контекстом: {$MACRO:"{{#MACRO}.iregsub(\"\.+\\\"([a-z]+)\", \1)}"}
Замечания:
Строковый параметр функции, не относящейся к истории
Содержимое строки: \.+\"[a-z]+
Выражение: concat("abc", "\\.\\\"[a-z]+")
Замечание:
Строковый параметр функции истории
Содержимое строки: \.+\"[a-z]+
Выражение: find(__ITEM_KEY__,,"regexp","\.+\\"[a-z]+")
Замечания:
Функция макросов LLD внутри строкового параметра функции, не относящейся к истории
Регулярное выражение: \.+\"([a-z]+)
Макрос LLD: {{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}
Выражение: concat("abc, "{{#MACRO}.iregsub(\"\\.+\\\\\"([a-z]+)\", \\1)}")
Замечания:
Функция макросов LLD внутри строкового параметра функции истории
Регулярное выражение: \.+\"([a-z]+)
Макрос LLD: {{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}
Выражение: find(__ITEM_KEY__,,"eq","{{#MACRO}.iregsub(\"\.+\\\"([a-z]+)\", \1)}")
Замечания:
Пользовательский макрос с контекстом внутри строкового параметра функции, не относящейся к истории
Регулярное выражение: \.+\"[a-z]+
Пользовательский макрос с контекстом: {$MACRO:regex:"\.+\\"[a-z]+"}
Выражение: concat("abc, "{$MACRO:regex:\"\\.+\\\\\"[a-z]+\"}")
Замечания:
Пользовательский макрос с контекстом внутри строкового параметра функции истории
Регулярное выражение: \.+\"[a-z]+
Пользовательский макрос с контекстом: {$MACRO:regex:"\.+\\"[a-z]+"}
Выражение: find(__ITEM_KEY__,,"eq","{$MACRO:regex:\"\.+\\\"[a-z]+\"}")
Замечания:
Функция макросов LLD внутри контекста пользовательского макроса внутри функции, не относящейся к истории
Регулярное выражение: \.+\"([a-z]+)
Макрос LLD: {{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}
Пользовательский макрос с контекстом: {$MACRO:"{{#MACRO}.iregsub(\"\.+\\\"([a-z]+)\", \1)}"}
Выражение: concat("abc, "{$MACRO:\"{{#MACRO}.iregsub(\\\"\.+\\\\\\\"([a-z])+\\\", \\1)}\"}")
Замечания по трём уровням экранирования:
Функция макросов LLD внутри контекста пользовательского макроса внутри функции истории
Регулярное выражение: \.+\"([a-z])+
Макрос LLD: {{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}
Пользовательский макрос с контекстом: {$MACRO:"{{#MACRO}.iregsub(\"\.+\\\"([a-z]+)\", \1)}"}
Выражение: find(__ITEM_KEY__,,"eq","{$MACRO:\"{{#MACRO}.iregsub(\\"\.+\\\\"([a-z])+\\", \1)}\"}")
Замечания:
Пользовательский макрос с контекстом просто внутри строки
Регулярное выражение: \.+\"[a-z]+
Пользовательский макрос с контекстом: {$MACRO:regex:"\.+\\"[a-z]+"}
Внутри строки некоторого выражения, например: func(arg1, arg2, arg3)="{$MACRO:regex:\"\\.+\\\\\"[a-z]+\"}"
Замечания: