1 宏函数

概述

宏函数能提供自定义值的功能。

有时宏可能会解析为一个不一定易于使用的值。它可能很长,或包含你想提取的一个特殊感兴趣的子字符串。这在宏函数中是可以使用的。

宏函数的语法为:

  1. {<macro>.<func>(<params>)}

其中:

  • - 这个参数为要定义的宏 (例如 {ITEM.VALUE});

  • - 要应用的函数;

  • - 以逗号分隔的函数参数列表。如果他们以 (空格), " 或者包含 ), ,这些符号开始,则参数必须要引用。

例如:

  1. {{ITEM.VALUE}.regsub(pattern, output)}

受支持的宏函数

函数
描述参数受支持于
regsub (<pattern>,<output>)
通过正则表达式匹配提取的子字符串(区分大小写)。pattern - 匹配的正则表达式
output - 输出的选项。 \1 - \9 占位符支持被正则表达式匹配的组placeholders are supported for captured groups.

如果参数 pattern 是一个不正确的正则表达式,那么将返回 “UNKNOWN” 。
{ITEM.VALUE}
{ITEM.LASTVALUE}
iregsub (<pattern>,<output>)
通过正则表达式匹配提取的子字符串(区分大小写)。pattern - 匹配的正则表达式
output - 输出得选项 \1 - \9 placeholders are supported for captured groups

如果参数 pattern 是一个不正确的正则表达式,那么将返回 “UNKNOWN” 。
{ITEM.VALUE}
{ITEM.LASTVALUE}

如果在受支持的位置使用函数,但是应用于不支持宏函数得宏, 那么宏的计算结果为 “UNKNOWN”。

如果在不支持宏函数的位置将宏函数应用于宏, 则忽略该函数。

示例

关于宏函数可用于自定义宏值的方法,在下面的示例中说明,其中包含的 “log line” 作为接收值:

接收值输出
123Log line{{ITEM.VALUE}.regsub(^[0-9]+, Problem)}Problem
123 Log line{{ITEM.VALUE}.regsub(“^([0-9]+)”, “Problem”)}Problem
123 Log line{{ITEM.VALUE}.regsub(“^([0-9]+)”, Problem ID: \1)}Problem ID: 123
Log line{{ITEM.VALUE}.regsub(“.“, “Problem ID: \1”)}Problem ID:
MySQL crashed errno 123{{ITEM.VALUE}.regsub(“^([A-Z]+).([0-9]+)”, “ Problem ID: \1_\2 “)}Problem ID: MySQL_123
123 Log line{{ITEM.VALUE}.regsub(“([1-9]+”, “Problem ID: \1”)}UNKNOWN (invalid regular expression)