本页提供了在各种上下文中使用正则表达式时正确使用转义的示例。
使用触发器表达式构造函数时,会自动添加正则表达式中的正确转义。
带有上下文的用户宏
正则表达式:\.+\"[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]+")
请注意:
LLD 宏函数在函数的 string 参数中
正则表达式:\.+\"([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]+\"}"
请注意: