本页提供在不同上下文中使用正则表达式时正确转义的示例.
使用触发器表达式构造器时,正则表达式中的正确转义会自动添加.
带上下文的自定义宏
正则表达式: \.+\"[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)}"}
注意:
非历史函数的string参数
string内容: \.+\"[a-z]+
表达式: concat("abc", "\\.\\\"[a-z]+")
注意:
历史函数的string参数
string内容: \.+\"[a-z]+
表达式: find(__ITEM_KEY__,,"regexp","\.+\\"[a-z]+")
注意:
LLD宏函数在非历史函数的string参数内部
正则表达式: \.+\"([a-z]+)
LLD宏: {{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}
表达式: concat("abc, "{{#MACRO}.iregsub(\"\\.+\\\\\"([a-z]+)\", \\1)}")
注意:
LLD宏函数在历史函数的string参数内部
正则表达式: \.+\"([a-z]+)
LLD宏: {{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}
表达式: find(__ITEM_KEY__,,"eq","{{#MACRO}.iregsub(\"\.+\\\"([a-z]+)\", \1)}")
注意:
带上下文的自定义宏在非历史函数的string参数内部
正则表达式: \.+\"[a-z]+
带上下文的自定义宏: {$MACRO:regex:"\.+\\"[a-z]+"}
表达式: concat("abc, "{$MACRO:regex:\"\\.+\\\\\"[a-z]+\"}")
注意:
带上下文的自定义宏在历史函数的string参数内部
正则表达式: \.+\"[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)}\"}")
注意:
带上下文的自定义宏仅位于string内部
正则表达式: \.+\"[a-z]+
带上下文的自定义宏: {$MACRO:regex:"\.+\\"[a-z]+"}
在某些表达式的string内部,例如: func(arg1, arg2, arg3)="{$MACRO:regex:\"\\.+\\\\\"[a-z]+\"}"
注意: