字符串函数

本文介绍字符串函数的语法规则,包括参数解释、函数示例等。

函数列表

类型

函数

说明

多字符串操作

str_format

按照指定格式对字符串进行格式化。

str_join

通过连接符将输入的字符串连接,生成一个新的字符串。

str_zip

将两个值或表达式的字符串进行拆分,然后再合并成一个字符串。

编码解码

str_encode

按照指定的编码格式对字符串进行编码。

str_decode

按照指定的编码格式对传入值进行解码。

str_hex_escape_encode

转义特殊字符,支持将十六进制字符转义为中文字符。

str_uuid

随机生成UUID。

排序、倒叙、替换

str_sort

将指定的对象进行排序。

str_reverse

将一个字符串进行反转。

str_replace

根据规则将旧字符串替换成新字符串。

str_logstash_config_normalize

将Logstash配置语言转成JSON格式。

str_translate

将字符串中的指定字符按照对应关系进行替换。

常规规整

str_strip

删除字符串中指定的字符。

str_lstrip

删除字符串开头的指定字符。

str_rstrip

删除字符串结尾的指定字符。

str_lower

将字符串中所有大写字符转换为小写字符。

str_upper

将字符串中所有小写字符转换为大写字符。

str_title

将所有单词的第一个字母转化为大写,其余字母均为小写。

str_capitalize

将字符串的第一个字母转化为大写,其他字母转化为小写。

str_swapcase

对字符串的大小写字母进行转换。

查找判断

str_count

统计字符串里某个字符出现的次数。

str_find

判断原字符串中是否包含指定的子字符串。

str_rfind

查找字符串中指定字符或者字符串最后一次出现的位置。

str_endswith

判断字符串是否以指定后缀结尾。

str_startswith

判断字符串是否以指定字符串开头。

切分

str_split

通过指定分隔符对字符串进行分割。

str_splitlines

通过换行符符对字符串进行分割。

str_partition

根据指定的分隔符将字符串从左往右分割为三部分。

str_rpartition

根据指定的分隔符将字符串从右往左分割为三部分。

格式化

str_center

用指定字符将字符串填充到指定长度。

str_ljust

用指定字符将字符串从结尾填充至指定长度。

str_rjust

用指定字符将原字符串从开头填充直至指定长度。

str_zfill

用字符0从开头将字符串填充至指定长度。

str_expandtabs

将字符串中的\t转换为空格。

字符集判断

str_isalnum

判断字符串是仅由字母和数字组成。

str_isalpha

判断字符串是否仅由字母组成。

str_isascii

判断字符串是否在ASCII中。

str_isdecimal

判断字符串是否仅包含十进制字符。

str_isdigit

判断字符串是否仅由数字组成。

str_isidentifier

判断字符串是否是有效的Python标识符,也可以用来判断变量名是否合法。

str_islower

判断字符串是否由小写字母组成。

str_isnumeric

判断字符串是否由数字组成。

str_isprintable

判断字符串中是否所有字符都是可打印字符。

str_isspace

判断字符串是否仅由空格字符组成。

str_istitle

判断字符串中所有单词的拼写首字母是否为大写,且其他字母为小写。

str_isupper

判断字符串中所有的字母是否都为大写。

字符串函数可以和如下函数配合使用:

类型

函数

说明

多字符串操作

op_add

计算多个值的和,可用于数值、字符串等。

op_max

计算多个数值的最大值,可用于数值、字符串等。

op_min

计算多个数值的最小值,可用于数值、字符串等。

字符串截取

op_slice

对字符串进行截取。

长度计算

op_len

计算字符串的长度。

str_format

将字符串按照指定格式进行格式化。

  • 函数格式

    str_format(format_string, value1, value2, ...)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    format_string

    任意(自动转为String)

    转换后的格式。例如{}={}

    value1

    任意

    待格式化的值1。

    value2

    任意

    待格式化的值2。

  • 返回结果

    返回格式化后的字符串。

  • 函数示例

    • 原始日志

      class: Format
      escape_name: Traditional
    • 加工规则

      e_set("str_format", str_format("{}={}", v("class"), v("escape_name")))
    • 加工结果

      class: Format
      escape_name: Traditional
      str_format: Format=Traditional

str_join

通过连接符将输入的字符串连接生成一个新的字符串。

  • 函数格式

    str_join(connector, value1,  value2, ....)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    connector

    任意(自动转为String)

    连接符。例如感叹号(!)、at符号(@)、井号(#)、美元符号($)、百分号(%)等。

    value1

    任意(自动转为String)

    待连接的值。

    value2

    任意(自动转为String)

    待连接的值。

  • 返回结果

    返回连接后的字符串。

  • 函数示例

    • 原始日志

      name: ETL
      company: aliyun.com
    • 加工规则

      e_set("email", str_join("@", v("name"), v("company")))
    • 加工结果

      name: ETL
      company: aliyun.com
      email:ETL@aliyun.com

str_encode

按照指定的编码格式对字符串进行编码。

  • 函数格式

    str_encode(value, "utf8", errors="ignore")
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被编码的值。

    encoding

    String

    编码格式,默认为UTF-8。支持ASCII。

    errors

    String

    按照编码格式无法识别字符时的处理方式。取值包括:

    • ignore(默认值):忽略不做编码。

    • strict:直接报错,丢弃此条日志数据。

    • replace:使用半角问号(?)替换无法识别部分。

    • xmlcharrefreplace:使用对应XML字符替换无法识别部分。

  • 返回结果

    返回编码后的字符串。

  • 函数示例

    • 示例1

      • 原始日志

        test: asewds
      • 加工规则

        e_set("f1", str_decode(str_encode("你好", "utf8"), "utf8"))
      • 加工结果

        test: asewds
        f1: 你好
    • 示例2

      • 原始日志

        f2: test 测试数据
      • 加工规则

        e_set("f1", str_encode(v("f2"), "ascii", errors="ignore"))
      • 加工结果

        f1:test 
        f2:test 测试数据
    • 示例3

      • 原始日志

        f2: test 测试数据
      • 加工规则

        e_set("f1", str_encode(v("f2"), "ascii", errors="strict"))
      • 加工结果

        执行时直接报错。

    • 示例4

      • 原始日志

        f2: test 测试数据
      • 加工规则

        e_set("f1", str_encode(v("f2"), "ascii", errors="replace"))
      • 加工结果

        f1:test ????
        f2:test 测试数据
    • 示例5

      • 原始日志

        f2: test 测试数据
      • 加工规则

        e_set("f1", str_encode(v("f2"), "ascii", errors="xmlcharrefreplace"))
      • 加工结果

        f1:test 测试数据
        f2:test 测试数据

str_decode

按照指定的编码格式对传入值进行解码。

  • 函数格式

    str_decode(value, "utf8", errors="ignore")
    说明

    str_decode只能处理Byte类型的数据。

  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被解码的值。

    encoding

    任意(自动转为String)

    编码格式,默认为UTF-8。 支持ASCII。

    errors

    任意(自动转为String)

    按照编码格式无法识别字符时的处理方式。取值包括:

    • ignore(默认值):忽略不做解码。

    • strict:直接报错,丢弃此条日志数据。

    • replace:使用半角问号(?)替换无法编解码部分。

    • xmlcharrefreplace:使用对应XML字符替换无法编解码部分。

  • 返回结果

    返回解码后的值。

  • 函数示例

    • 原始日志

      test: asewds
    • 加工规则

      e_set("encoding", str_decode(b'\xe4\xbd\xa0\xe5\xa5\xbd', "utf8", 'strict'))
    • 加工结果

      test: asewds
      encoding: 你好

str_replace

将旧字符串根据规则替换成新字符串。

  • 函数格式

    str_replace(value, old, new, count)
    说明

    该函数为基本变参调用形式,请参见函数调用方式

  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被替换的值。

    old

    任意(自动转为String)

    需要被替换的字符串。

    new

    任意(自动转为String)

    替换后新的字符串。

    count

    Number

    替换次数,可选项。如果不设置count,则表示替换所有。

  • 返回结果

    返回一个新字符串。

  • 函数示例

    将dict类型转成JSON类型。

    • 原始日志

      content:  {'referer': '-', 'request': 'GET /phpMyAdmin', 'status': 404, 'data-1': {'aaa': 'Mozilla', 'bbb': 'asde'}, 'data-2': {'up_adde': '-', 'up_host': '-'}}
    • 加工规则

      e_set("content_json", str_replace(ct_str(v("content")),"'",'"'))
    • 加工结果

      content:  {'referer': '-', 'request': 'GET /phpMyAdmin', 'status': 404, 'data-1': {'aaa': 'Mozilla', 'bbb': 'asde'}, 'data-2': {'up_adde': '-', 'up_host': '-'}}
      content_json:  {"referer": "-", "request": "GET /phpMyAdmin", "status": 404, "data-1": {"aaa": "Mozilla", "bbb": "asde"}, "data-2": {"up_adde": "-", "up_host": "-"}}

str_sort

将指定的对象进行排序。

  • 函数格式

    str_sort(value, reverse=False)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被排序的原字符串。

    reverse

    Boolean

    默认为False,表示升序排列。

  • 返回结果

    返回排序后的字符串。

  • 函数示例

    • 示例1:对str字符串整体进行排序。

      • 原始日志

        str: twish
      • 加工规则

        e_set("str_sort", str_sort(v("str")))
      • 加工结果

        str: twish
        str_sort: histw
    • 示例2:对str字符串进行两个一组的倒排序。

      • 原始日志

        str: twish
      • 加工规则

        e_set("str_sort", str_sort(v("str"), reverse=True))
      • 加工结果

        str: twish
        str_sort: wtsih

str_reverse

将一个字符串进行反转。

  • 函数格式

    str_reverse(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被反转的值。

  • 返回结果

    返回反转后的字符串。

  • 函数示例

    对字段data的值进行反转。

    • 原始日志

      data:twish
    • 加工规则

      e_set("reverse_data", str_reverse(v("data")))
    • 加工结果

      data:twish
      reverse_data:hsiwt

str_logstash_config_normalize

将Logstash配置格式转成JSON格式。

  • 函数格式

    str_logstash_config_normalize(value)
    说明

    关于Logstash类型说明请参见Logstash

  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被转换的值。

  • 返回结果

    返回转换后的字符串。

  • 函数示例

    对Logstash类型数据进行转换。

    • 原始日志

      logstash: {"name"=>"tw5"}
    • 加工规则

      e_set("normalize_data", str_logstash_config_normalize(v("logstash")))
    • 加工结果

      logstash: {"name"=>"tw5"}
      normalize_data:{"name":"tw5"}

str_hex_escape_encode

将特殊字符进行转义,支持十六进制字符转义为中文字符。

  • 函数格式

    str_hex_escape_encode(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被转义的值。

  • 返回结果

    返回转义后的字符串。

  • 函数示例

    将myfriend字段的值转义为中文字符。

    • 原始日志

      myfriend: \xE6\x9F\xB3\xE4\xBA\x91
    • 加工规则

      e_set("hex_myfriend", str_hex_escape_encode("myfriend"))
    • 加工结果

      hex_myfriend:myfriend
      myfriend:\xE6\x9F\xB3\xE4\xBA\x91

str_strip

删除字符串中指定的字符。

  • 函数格式

    str_strip(value, chars)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被修改的原字符串。

    chars

    任意(自动转为String)

    字符串开头和结尾需要删除的字符集,默认为\t\r\n

  • 返回结果

    返回修改后的字符串。

  • 函数示例

    • 示例1:删除strip开头的*字符。

      • 原始日志

        strip: ***I love Etl
      • 加工规则

        e_set("str_strip", str_strip(v("strip"), "*"))
      • 加工结果

        strip: ***I love Etl
        str_strip:I love Etl
    • 示例2:删除strip开头的空格。

      • 原始日志

        strip:    I love Etl
      • 加工规则

        e_set("str_strip", str_strip(v("strip")))
      • 加工结果

        strip:    I love Etl
        str_strip: I love Etl
    • 示例3:删除的字符集为xy

      • 原始日志

        strip:xy123yx
      • 加工规则

        e_set("str_strip", str_strip(v("strip"), "xy"))
      • 加工结果

        strip:xy123yx
        str_strip:123

str_lower

将字符串中所有大写字符转换为小写字符。

  • 函数格式

    str_lower(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被转换的字符串。

  • 返回结果

    返回转换后的字符串。

  • 函数示例

    把name值全部转换成小写字母。

    • 原始日志

      name: Etl
    • 加工规则

      e_set("str_lower", str_lower(v("name")))
    • 加工结果

      name: Etl
      str_lower: etl

str_upper

将字符串中所有小写字符转换为大写字符。

  • 函数格式

    str_upper(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被转换的字符串。

  • 返回结果

    返回转换后的字符串。

  • 函数示例

    把name值全部转换成大写字母。

    • 原始日志

      name: etl
    • 加工规则

      e_set("str_upper", str_upper(v("name")))
    • 加工结果

      name: etl
      str_upper: ETL

str_title

将所有单词的第一个字母转化为大写,其余字母均为小写。

  • 函数格式

    str_title(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被转换的字符串。

  • 返回结果

    返回转换后的字符串。

  • 函数示例

    word字段值中所有单词的首字母转成大写。

    • 原始日志

      word: this is etl
    • 加工规则

      e_set("str_title", str_title(v("word")))
    • 加工结果

      word: this is etl
      str_title: This Is Etl

str_capitalize

将字符串的第一个字母转化为大写,其他字母转化为小写。

  • 函数格式

    str_capitalize(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被转换的字符串。

  • 返回结果

    返回转换后的字符串。

  • 函数示例

    word字段值中第一个字符转换为大写,其他字符转换为小写。

    • 原始日志

      word: this Is MY EAL
    • 加工规则

      e_set("str_capitalize", str_capitalize(v("word")))
    • 加工结果

      word: this Is MY EAL
      str_capitalize: This is my eal

str_lstrip

删除字符串开头的指定字符。

  • 函数格式

    str_lstrip(value, chars)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被修改的原字符串。

    chars

    任意(自动转为String)

    字符串开头需要删除的字符集,默认为空格。

  • 返回结果

    返回修改后的字符串。

  • 函数示例

    • 示例1:去掉word字段开头的星号(*)。

      • 原始日志

        word: ***this is string
      • 加工规则

        e_set("str_lstrip", str_lstrip(v("word"), "*"))
      • 加工结果

        word: ***this is string
        str_lstrip: this is string
    • 示例2:删除word字段开头的空格。

      • 原始日志

        word:     this is string
      • 加工规则

        e_set("str_lstrip", str_lstrip(v("word")))
      • 加工结果

        word:     this is string
        str_lstrip: this is string
    • 示例3:删除字符集xy

      • 原始日志

        lstrip:xy123yx
      • 加工规则

        e_set("str_lstrip", str_lstrip(v("lstrip"),"xy"))
      • 加工结果

        lstrip:xy123yx
        str_lstrip:123yx

str_rstrip

删除字符串结尾的指定字符。

  • 函数格式

    str_rstrip(value, chars)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被修改的原字符串。

    chars

    任意(自动转为String)

    字符串结尾需要删除的字符集,默认为空格。

  • 返回结果

    返回修改后的字符串。

  • 函数示例

    • 示例1:去掉word字段结尾的星号(*)。

      • 原始日志

        word: this is string*****
      • 加工规则

        e_set("str_rstrip", str_rstrip(v("word"), "*"))
      • 加工结果

        word: this is string*****
        str_rstrip: this is string
    • 示例2:删除字符集xy

      • 原始日志

        word:xy123yx
      • 加工规则

        e_set("str_rstrip", str_rstrip(v("word"), "xy"))
      • 加工结果

        word:xy123yx
        str_rstrip:xy123

str_swapcase

对字符串的大小写字母进行转换。

  • 函数格式

    str_swapcase(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被转换的字符串。

  • 返回结果

    返回转换后的字符串。

  • 函数示例

    • 原始日志

      name: this is string
    • 加工规则

      e_set("str_swapcase", str_swapcase(v("name")))
    • 加工结果

      name: this is string
      str_swapcase: THIS IS STRING

str_translate

将字符串中的指定字符按照对应关系进行替换。

  • 函数格式

    str_translate(value, replace_string, mapping_string)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被替换的原字符串。

    replace_string

    任意(自动转为String)

    需要替换的字符集合。

    mapping_string

    任意(自动转为String)

    替换后的字符集合。

  • 返回结果

    返回处理后的字符串。

  • 函数示例

    • 原始日志

      name: I love ETL!!!
    • 加工规则

      e_set("str_translate", str_translate(v("name"), "aeiou", "12345"))
    • 加工结果

      name: I love ETL!!!
      str_translate: I l4v2 ETL!!!

str_endswith

判断字符串是否以指定后缀结尾。

  • 函数格式

    str_endswith(value, suffix, start, end)
    说明

    该函数为基本变参调用形式,请参见函数调用方式

  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被判断的原字符串。

    suffix

    任意(自动转为String)

    后缀结尾规则。该参数可以是一个字符串或者是一个元素。

    start

    Number

    字符串检测的起始位置。

    0表示第一个字符,-1表示倒数第一个字符。

    end

    Number

    字符串检测的结束位置。

    0表示第一个字符,-1表示倒数第一个字符。

  • 返回结果

    如果字符串以指定后缀结尾则返回True,否则返回False。

  • 函数示例

    • 原始日志

      name: this is endswith!!!
    • 加工规则

      e_set("str_endswith",str_endswith(v("name"), "!"))
    • 加工结果

      name: this is endswith!!!
      str_endswith: True

str_startswith

判断字符串是否以指定字符串开头。

  • 函数格式

    str_startswith(value, prefix, start, end)
    说明

    该函数为基本变参调用形式,请参见函数调用方式

  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被判断的原字符串。

    prefix

    任意(自动转为String)

    前缀规则。该参数可以是一个字符串或者是一个元素。

    start

    Number

    字符串检测的起始位置。

    0表示第一个字符,-1表示倒数第一个字符。

    end

    Number

    字符串检测的结束位置。

    0表示第一个字符,-1表示倒数第一个字符。

  • 返回结果

    如果字符串以指定前缀开头则返回True,否则返回False。

  • 函数示例

    • 原始日志

      name: !! this is startwith
    • 加工规则

      e_set("str_startswith",str_startswith(v("name"), "!!"))
    • 加工结果

      name: !! this is startwith
      str_startswith: True

str_find

判断原字符串中是否包含指定的子字符串。

  • 函数格式

    str_find(value, str, begin, end)
    说明

    该函数为基本变参调用形式,请参见函数调用方式

  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被查找的原字符串。

    str

    任意(自动转为String)

    指定查找的子字符串。

    begin

    Number

    开始索引的位置。

    默认为0表示第一个字符,-1表示倒数第一个字符。

    end

    Number

    结束索引的位置。

    默认为字符串的长度。0表示第一个字符,-1表示倒数第一个字符。

  • 返回结果

    返回指定子字符串在原字符串中的位置。如果指定的子字符串在原字符串中出现多次,只返回第一次出现的子字符串的位置。

  • 函数示例

    • 原始日志

      name: hello world
    • 加工规则

      e_set("str_find",str_find(v("name"), "h"))
    • 加工结果

      name: hello world
      str_find: 0

str_count

统计字符串里某个字符出现的次数。

  • 函数格式

    str_count(value, sub, start, end)
    说明

    该函数为基本变参调用形式,请参见函数调用方式

  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    被统计的原字符串。

    sub

    任意(自动转为String)

    需要统计个数的字符。

    start

    Number

    字符串开始搜索的位置。

    • 0(默认值):第一个字符。

    • -1:最后一个字符。

    end

    Number

    字符串中结束搜索的位置。

    • 0:第一个字符。

    • -1(默认值):最后一个字符。

  • 返回结果

    返回指定字符出现的次数。

  • 函数示例

    • 原始日志

      name: this is really a string
    • 加工规则

      e_set("str_count", str_count(v("name"), "i"))
    • 加工结果

      name: this is really a string
      str_count: 3

str_rfind

查找字符串中指定字符或者字符串最后一次出现的位置。

  • 函数格式

    str_rfind(value, substr, beg, end)
    说明

    该函数为基本变参调用形式,请参见函数调用方式

  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    被查找的原字符串。

    substr

    任意(自动转为String)

    需要查找的字符。

    beg

    Number

    开始查找的位置,默认为0。

    end

    Number

    结束查找的位置,默认为字符串的长度。

  • 返回结果

    返回字符或字符串最后一次出现的位置。

  • 函数示例

    • 原始日志

      name: this is really a string
    • 加工规则

      e_set("str_rfind", str_rfind(v("name"), "i"))
    • 加工结果

      name: this is really a string
      str_rfind: 20

str_split

通过指定分隔符对字符串进行分割。

  • 函数格式

    str_split(value, sep=None, maxsplit=-1)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被分割的原字符串。

    sep

    Number

    分隔符,None表示空格。

    maxsplit

    Number

    最大分裂数。-1表示不限制。

  • 返回结果

    返回处理后的字符串。

  • 函数示例

    按照空格对content进行分隔。

    • 原始日志

      content: hello world
    • 加工规则

      e_set("str_split", str_split(v("content"), " "))
    • 加工结果

      content: hello world
      str_split: ["hello", "world"]

str_splitlines

通过换行符对字符串进行分割。

  • 函数格式

    str_splitlines(value, keepends)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被分割的原字符串。

    keepends

    Boolean

    在输出结果里是否去掉换行符(\r\r\n\n)。默认为False,不包含换行符,如果为True,则保留换行符。

  • 返回结果

    返回处理后的列表。

  • 函数示例

    • 示例1

      • 原始日志

        content: ab c\n\nde fg\rkl\r\n
      • 加工规则

        e_set("str_splitlines", str_splitlines(v("content"), False))
      • 加工结果

        content: ab c\n\nde fg\rkl\r\n
        str_splitlines: ['ab c', '', 'de fg', 'kl']
    • 示例2

      • 原始日志

        content: ab c\n\nde fg\rkl\r\n
      • 加工规则

        e_set("str_splitlines", str_splitlines(v("content"), True))
      • 加工结果

        content: ab c\n\nde fg\rkl\r\n  
        str_splitlines: ['ab c\n', '\n', 'de fg\r', 'kl\r\n']

str_partition

根据指定的分隔符将字符串从左往右分割为三部分。

  • 函数格式

    str_partition(value, substr)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被分割的字符串。

    substr

    任意(自动转为String)

    指定的分隔符。

  • 返回结果

    返回分隔后的列表。

  • 函数示例

    对website按照.从左往右分隔成三部分。

    • 原始日志

      website: www.aliyun.com
    • 加工规则

      e_set("str_partition", str_partition(v("website"), "."))
    • 加工结果

      website: www.aliyun.com
      str_partition:  ["www", ".", "aliyun.com"]

str_rpartition

根据指定的分隔符将字符串从右往左分割为三部分。

  • 函数格式

    str_rpartition(value, substr)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被分割的原字符串。

    substr

    任意(自动转为String)

    指定的分隔符。

  • 返回结果

    返回处理后的列表。

  • 函数示例

    对website按照.从右往左分隔成三部分。

    • 原始日志

      website: www.aliyun.com
    • 加工规则

      e_set("str_partition", str_rpartition(v("website"), "."))
    • 加工结果

        website: www.aliyun.com
        str_partition: ["www.aliyun", ".", "com"]

str_center

用指定字符将字符串填充到指定长度。

  • 函数格式

    str_center(value, width, fillchar)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被修改的原字符串。

    width

    Number

    填充后字符串的总长度。

    fillchar

    任意(自动转为String)

    填充字符,默认为空格。

  • 返回结果

    返回处理后的字符串。

    说明

    如果指定的填充后字符串长度小于原字符串长度则直接返回原字符串。

  • 函数示例

    • 示例1:使用*字符填充字符串。

      • 原始日志

        center: this is center
      • 加工规则

        e_set("str_center", str_center(v("center"), 40, "*"))
      • 加工结果

        center: this is center
        str_center: *************this is center*************
    • 示例2:使用空格填充字符串。

      • 原始日志

        center: this is center
      • 加工规则

        e_set("str_center", str_center(v("center"), 40))
      • 加工结果

        center: this is center
        str_center:              this is center 

str_zfill

用字符0从开头将字符串填充至指定长度。

  • 函数格式

    str_zfill(value, width)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被修改的原字符串。

    width

    Number

    填充后字符串的总长度。

  • 返回结果

    返回处理后的字符串。

  • 函数示例

    • 原始日志

      center: this is zfill
    • 加工规则

      e_set("str_zfill", str_zfill(v("center"), 40))
    • 加工结果

      center:this is zfill
      str_zfill:000000000000000000000000000this is zfill

str_expandtabs

将字符串中的\t转为空格。

  • 函数格式

    str_expandtabs(value, tabsize)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被修改的原字符串。

    tabsize

    Number

    指定转换后空格的字符数。

  • 返回结果

    返回处理后的字符串。

  • 函数示例

    • 示例1:把Logstash中的\t字符转为空格。

      • 原始日志

        logstash: this is\tstring
      • 加工规则

        e_set("str_expandtabs", str_expandtabs(v("logstash")))
      • 加工结果

        logstash: this is\tstring
        str_expandtabs: this is string
    • 示例2:把center中的\t字符转为空格。

      • 原始日志

        {"center": "this is\tstring"}
      • 加工规则

        e_set("str_expandtabs", str_expandtabs(v("center"), 16))
      • 加工结果

        center: this is\tstring
        str_expandtabs: this is         string

str_ljust

用指定字符将原字符串从结尾填充至指定长度。

  • 函数格式

    str_ljust(value, width, fillchar)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被修改的原字符串。

    width

    Number

    填充后字符串的总长度。

    fillchar

    任意(自动转为String)

    填充字符,默认为空格。

  • 返回结果

    返回处理后的字符串。

    说明

    如果指定的填充后字符串长度小于原字符串长度则直接返回原字符串。

  • 函数示例

    • 示例1

      • 原始日志

        content: this is ljust
      • 加工规则

        e_set("str_ljust", str_ljust(v("content"), 20, "*"))
      • 加工结果

        content: this is ljust
        str_ljust: this is ljust*******
    • 示例2

      • 原始日志

        center: this is ljust
      • 加工规则

        e_set("str_ljust", str_ljust(v("center"), 20,))
      • 加工结果

        center: this is ljust
        str_ljust: this is ljust   
    • 示例3:width宽度没有字符串长,则直接返回原字符串。

      • 原始日志

        center: this is ljust
      • 加工规则

        e_set("str_ljust", str_ljust(v("center"),10,  "*"))
      • 加工结果

        center: this is ljust
        str_ljust: this is ljust

str_rjust

用指定字符将原字符串从开头填充至指定长度。

  • 函数格式

    str_rjust(value, width, fillchar)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被修改的原字符串。

    width

    Number

    填充后字符串的总长度。

    fillchar

    任意(自动转为String)

    填充字符,默认为空格。

  • 返回结果

    返回处理后的字符串。

    说明

    如果指定的填充后字符串长度小于原字符串长度则直接返回原字符串。

  • 函数示例

    • 原始日志

      center: this is rjust
    • 加工规则

      e_set("str_rjust", str_rjust(v("center"), 20, "*"))
    • 加工结果

      center: this is rjust
      str_rjust: *******this is rjust

str_zip

将两个值或表达式的字符串进行拆分,然后再合并成一个字符串。

  • 函数格式

    str_zip(value1, value2, combine_sep=None, sep=None, quote=None, lparse=None, rparse=None)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value1

    任意(自动转为String)

    需要被合并的值。

    value2

    任意(自动转为String)

    需要被合并的值。

    combine_sep

    任意(自动转为String)

    合并时元素之间的合并标识,默认为#

    sep

    任意(自动转为String)

    合并后元素之间的分隔符,仅支持单个字符,默认为,

    quote

    任意(自动转为String)

    将合并后的元素括起来的字符,当值包含分隔符时需要使用,默认为"

    lparse

    任意(自动转为String)

    指定value1中元素之间的分隔符和引用符,默认分隔符为,,默认引用符为"。格式为lparse=(',', '"')

    说明

    引用符优先级高于分隔符。

    rparse

    任意(自动转为String)

    指定value2中元素之间的分隔符和引用符,默认分隔符为,,默认引用符为"。格式为rparse=(',', '"')

    说明

    引用符优先级高于分隔符。

  • 返回结果

    返回合并后的字符串。

  • 函数示例

    • 示例1

      • 原始日志

        website: wwww.aliyun.com
        escape_name: o
      • 加工规则

        e_set("combine", str_zip(v("website"), v("escape_name"), combine_sep="@"))
      • 加工结果

        website: wwww.aliyun.com
        escape_name: o
        combine: wwww.aliyun.com@o
    • 示例2

      • 原始日志

        website: wwww.aliyun.com
        escape_name: o
      • 加工规则

        e_set("combine", str_zip(v("website"), v("escape_name")))
      • 加工结果

        combine:wwww.aliyun.com#o  
        escape_name:o
        website:wwww.aliyun.com
    • 示例3:sep的使用。

      • 原始日志

        f1: a,b,c
        f2: x,y,z
      • 加工规则

        e_set("combine", str_zip(v("f1"), v("f2"), sep="|"))
      • 加工结果

        f1: a,b,c
        f2: x,y,z
        combine: a#x|b#y|c#z
    • 示例4:quote的使用。

      • 原始日志

        f1: "a,a", b, "c,c"
        f2: x, "y,y", z
      • 加工规则

        e_set("combine", str_zip(v("f1"), v("f2"), quote='|'))
      • 加工结果

        f1: "a,a", b, "c,c"
        f2: x, "y,y", z
        combine: |a,a#x|,|b#y,y|,|c,c#z|
    • 示例5:不同长度的值。

      • 原始日志

        f1: a,b
        f2: x,y,z
      • 加工规则

        e_set("combine", str_zip(v("f1"), v("f2")))
      • 加工结果

        f1: a,b
        f2: x,y,z
        combine: a#x,b#y
    • 示例6:lparse和rparse的使用。

      • 原始日志

        f1: a#b#c
        f2: x|y|z
      • 加工规则

        e_set("combine", str_zip(v("f1"), v("f2"), lparse=("#", '"'), rparse=("|", '"')))
      • 加工结果

        f1: a#b#c
        f2: x|y|z
        combine: a#x,b#y,c#z
    • 示例7:lparse和rparse的使用。

      • 原始日志

        f1: |a,a|, b, |c,c|
        f2: x, #y,y#, z
      • 加工规则

        e_set("combine", str_zip(v("f1"), v("f2"), lparse=(",", '|'), rparse=(",", '#')))
      • 加工结果

        f1: |a,a|, b, |c,c|
        f2: x, #y,y#, z
        combine: "a,a#x","b#y,y","c,c#z"

str_isalnum

判断字符串是否仅由字母和数字组成。

  • 函数格式

    str_isalnum(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被检测的字符串。

  • 返回结果

    返回True或False。

  • 函数示例

    • 原始日志

      content: 13
    • 加工规则

      e_set("str_isalnum", str_isalnum(v("content")))
    • 加工结果

      content: 13
      str_isalnum: True

str_isalpha

判断字符串是否仅由字母组成。

  • 函数格式

    str_isalpha(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被检测的字符串。

  • 返回结果

    返回True或False。

  • 函数示例

    • 原始日志

      content: 13
    • 加工规则

      e_set("str_isalpha", str_isalpha(v("content")))
    • 加工结果

      content: 13
      str_isalpha: False

str_isascii

判断字符串是否在ASCII中。

  • 函数格式

    str_isascii(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被检测的字符串。

  • 返回结果

    返回True或False。

  • 函数示例

    • 原始日志

      content: asw123
    • 加工规则

      e_set("str_isascii", str_isascii(v("content")))
    • 加工结果

      content: asw123
      str_isascii: True

str_isdecimal

判断字符串是否仅包含十进制字符。

  • 函数格式

    str_isdecimal(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被检测的字符串。

  • 返回结果

    返回True或False。

  • 函数示例

    • 示例1

      • 原始日志

        welcome: 你好
      • 加工规则

        e_set("str_isdecimal", str_isdecimal(v("welcome")))
      • 加工结果

        welcome: 你好
        str_isdecimal: False
    • 示例2

      • 原始日志

        num: 123
      • 加工规则

        e_set("str_isdecimal", str_isdecimal(v("num")))
      • 加工结果

        num: 123
        str_isdecimal: True

str_isdigit

判断字符串是否仅由数字组成。

  • 函数格式

    str_isdigit(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被检测的字符串。

  • 返回结果

    返回True或False。

  • 函数示例

    • 原始日志

      content: 13
    • 加工规则

      e_set("str_isdigit", str_isdigit(v("content")))
    • 加工结果

      content: 13
      str_isdigit: True

str_isidentifier

判断字符串是否是有效的Python标识符,也可以用来判断变量名是否合法。

  • 函数格式

    str_isidentifier(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被检测的字符串。

  • 返回结果

    返回True或False。

  • 函数示例

    • 原始日志

      class: class
    • 加工规则

      e_set("str_isidentifier", str_isidentifier(v("class")))
    • 加工结果

      class: class
      str_isidentifier: True

str_islower

判断字符串是否由小写字母组成。

  • 函数格式

    str_islower(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被检测的字符串。

  • 返回结果

    返回True或False。

  • 函数示例

    • 原始日志

      lower: asds
    • 加工规则

      e_set("str_islower", str_islower(v("lower")))
    • 加工结果

      lower: asds
      str_islower: True

str_isnumeric

判断字符串是否由数字组成。

  • 函数格式

    str_isnumeric(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被检测的字符串。

  • 返回结果

    返回True或False。

  • 函数示例

    • 原始日志

      num: 123
    • 加工规则

      e_set("str_isnumeric", str_isnumeric(v("num")))
    • 加工结果

      num: 123
      str_isnumeric: True

str_isprintable

判断字符串中是否所有字符都是可打印字符。

  • 函数格式

    str_isprintable(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被检测的字符串。

  • 返回结果

    返回True或False。

  • 函数示例

    • 原始日志

      content: vs;,.as
    • 加工规则

      e_set("str_isprintable",  str_isprintable(v("content")))
    • 加工结果

      content: vs;,.as
      str_isprintable: True

str_isspace

判断字符串是否仅由空格字符组成。

  • 函数格式

    str_isspace(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被检测的字符串。

  • 返回结果

    返回True或False。

  • 函数示例

    • 原始日志

      space:  as afsd
    • 加工规则

      e_set("str_isspace", str_isspace(v("space")))
    • 加工结果

      space:  as afsd
      str_isspace: False

str_istitle

判断字符串中所有单词的拼写首字母是否为大写,且其他字母为小写。

  • 函数格式

    str_istitle(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被检测的字符串。

  • 返回结果

    返回True或False。

  • 函数示例

    • 原始日志

      title: Alex Is A Boy
    • 加工规则

      e_set("str_istitle", str_istitle(v("title")))
    • 加工结果

      str_istitle:true
      title:Alex Is A Boy

str_isupper

判断字符串中所有的字母是否都为大写。

  • 函数格式

    str_isupper(value)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    value

    任意(自动转为String)

    需要被检测的字符串。

  • 返回结果

    返回True或False。

  • 函数示例

    • 原始日志

      content: ASSD
    • 加工规则

      e_set("str_isupper", str_isupper(v("content")))
    • 加工结果

      content: ASSD
      str_isupper: True

str_uuid

随机生成UUID。

  • 函数格式

    str_uuid(lower=True)
  • 参数说明

    参数名称

    数据类型

    是否必填

    说明

    lower

    Boolean

    生成的UUID中的字母是否是小写。默认为True表示小写。

  • 返回结果

    返回UUID码。

  • 函数示例

    • 示例1

      • 原始日志

        content: I am Iron man
      • 加工规则

        e_set("UUID", str_uuid())
      • 加工结果

        content: I am Iron man
        UUID: e9fcd6b0-b970-11ec-979d-0f7041e65ab8
    • 示例2

      • 原始日志

        content: I am Iron man
      • 加工规则

        e_set("UUID", str_uuid(lower=False))
      • 加工结果

        content: I am Iron man
        UUID: 0649211E-B971-11EC-A258-E71F0A2930C5