本页面提供了在不同上下文中使用正则表达式时正确转义的示例。
在使用触发器表达式构造器时,正则表达式中的正确转义会自动添加。
带上下文的用户宏
正则表达式:\.+\"[a-z]+
带上下文的用户宏:{$MACRO:regex:"\.+\\"[a-z]+"}
注意:
在监控项键参数中的宏函数
正则表达式:.+:(\d+)$
监控项键:net.tcp.service[tcp,,"{{$ENDPOINT}.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参数(任意函数)
以concat
为例。
string内容:\.+\"[a-z]+
表达式:concat("abc", "\\.\\\"[a-z]+")
注意:
在函数的string参数中的LLD宏函数
正则表达式:\.+\"([a-z]+)
LLD宏:{{#MACRO}.iregsub("\.+\\"([a-z]+)", \1)}
表达式:concat("abc, "{{#MACRO}.iregsub(\"\\.+\\\\\"([a-z]+)\", \\1)}")
注意:
在函数的string参数中的带上下文的用户宏
正则表达式:\.+\"[a-z]+
带上下文的用户宏:{$MACRO:regex:"\.+\\"[a-z]+"}
表达式:concat("abc, "{$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)}\"}")
注意三层转义:
仅在string中的带上下文的用户宏
正则表达式:\.+\"[a-z]+
带上下文的用户宏:{$MACRO:regex:"\.+\\"[a-z]+"}
在某个表达式的string中,例如:func(arg1, arg2, arg3)="{$MACRO:regex:\"\\.+\\\\\"[a-z]+\"}"
注意: