本文档主要介绍正则表达式函数的语法规则,包括参数解释、函数示例等。
函数列表
类型 | 函数 | 说明 |
---|---|---|
值提取函数 | regex_select | 根据正则表达式提取特定的值。 |
regex_findall | 根据正则表达式获得符合条件的所有值的一个列表。 | |
匹配判断 | regex_match | 判断是否匹配正则表达式。 |
替换 | regex_replace | 根据正则表达式替换字符串中的指定字符。 |
切分 | regex_split | 将一个字符串分割成字符串数组。 |
regex_select
- 函数格式
regex_select(值, r"正则表达式", mi=None, gi=None)
- 参数说明
参数名称 参数类型 是否必填 说明 值 任意 是 填入要匹配的值。 正则表达式 String 是 要做匹配的正则表达式。 mi int 否 表示匹配到的第几个表达式,默认None,表示第一个。 gi int 否 表示匹配到的第几个分组,默认None,表示第一个。 - 返回结果
返回提取的值。
- 函数示例
- 示例1:提取str中的数字。
原始日志:
str: iZbp1a65x3r1vhpe94fi2qZ
加工规则:e_set("regex", regex_select(v("str"),r"\d+"))
加工结果:str: iZbp1a65x3r1vhpe94fi2qZ regex: 1
- 示例2
原始日志:
str: abc123 xyz456
加工规则:e_set("regex", regex_select(v("str"),r"\d+",mi=1)) e_set("regex2", regex_select(v("str"),r"\d+"))
加工结果:str: abc123 xyz456 regex: 456 regex2: 123
- 示例3
原始日志:
str: abc123 xyz456
加工规则:e_set("regex", regex_select(v("str"),r"[a-z]+(\d+)",gi=0)) e_set("regex2", regex_select(v("str"),r"[a-z]+(\d+)",mi=1,gi=0)) e_set("regex3", regex_select(v("str"),r"([a-z]+)(\d+)",gi=0)) e_set("regex4", regex_select(v("str"),r"([a-z]+)(\d+)",gi=1))
加工结果:str: abc123 xyz456 regex: 123 regex2: 456 regex3: abc regex4: 123
- 示例1:提取str中的数字。
regex_findall
- 函数格式
regex_findall(值, r"正则表达式")
- 参数说明
参数名称 参数类型 是否必填 说明 值 任意 是 要匹配的值。 正则表达式 String 是 要做匹配的正则表达式。 - 返回结果
返回获得符合条件的列表。
- 函数示例:匹配出str所有的数字。
原始日志:
str: iZbp1a65x3r1vhpe94fi2qZ
加工规则:e_set("regex_findall", regex_findall(v("str"),r"\d+"))
加工结果:str: iZbp1a65x3r1vhpe94fi2qZ regex_findall: ["1", "65", "3", "1", "94", "2"]
regex_match
- 函数格式
regex_match(值, r"正则表达式", full=False)
- 参数说明
参数名称 参数类型 是否必填 说明 值 任意 是 要匹配的值。 正则表达式 String 是 要做匹配的正则表达式。 full Bool 否 是否完全匹配,默认为False。 - 返回结果
返回True或者False。
- 函数示例:匹配出str所有的数字。
原始日志:
str: iZbp1a65x3r1vhpe94fi2qZ
加工规则:e_set("regex_match", regex_match(v("str"),r"\d+")) e_set("regex_match2", regex_match(v("str"),r"\d+",full=True))
加工结果:str: iZbp1a65x3r1vhpe94fi2qZ regex_match: True regex_match2: False
regex_replace
- 函数格式
regex_replace(值, r"正则表达式", replace="", count=0)
- 参数说明
参数名称 参数类型 是否必填 说明 值 任意 是 要被替换的值。 正则表达式 String 是 要做匹配的正则表达式。 replace String 否 替换后的新字符。默认为空,表示删除字符。 count Number 否 替换次数。 默认为0,表示替换所有。 - 返回结果
返回替换后的新字符串。
- 函数示例:把str中的所有数字用13替换。
原始日志:
str: iZbp1a65x3r1vhpe94fi2qZ replace: 13
加工规则:e_set("regex_replace", regex_replace(v("str"),r"\d+",v("replace")))
加工结果:str: iZbp1a65x3r1vhpe94fi2qZ replace: 13 regex_replace: iZbp13a13x13r13vhpe13fi13qZ
regex_split
- 函数格式
regex_split(值, r"正则表达式", maxsplit=0)
- 参数说明
参数名称 参数类型 是否必填 说明 值 任意 是 要分裂的值。 正则表达式 String 是 要做匹配的正则表达式。 maxsplit int 否 最大分裂匹配次数。默认为0表示全部匹配分裂,如果为1,表示匹配中一个就分裂,剩余不再进行匹配。 - 返回结果
返回分割后的数组列表。
- 函数示例:str按照数字进行分隔。
原始日志:
str: iZbp1a65x3r1vhpe94fi2qZ
加工规则:e_set("regex_split", regex_split(v("str"),r"\d+"))
加工结果:str: iZbp1a65x3r1vhpe94fi2qZ regex_split: ["iZbp", "a", "x", "r", "vhpe", "fi", "qZ"]