Todos os produtos
Search
Central de documentação

Edge Security Acceleration:Funções de string

Última atualização: Sep 25, 2026

Este tópico descreve a sintaxe, a descrição, os parâmetros e os valores de retorno das funções de string, além de fornecer exemplos de uso de cada função.

substr

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

substr(s, i, j)

Descrição

Extrai partes de uma string.

Parâmetro

  • s: a string source.

  • i: a posição de início da extração na string source, contando a partir de 1. O valor -1 especifica o caractere mais à direita da string. Tipo de dado: inteiro.

  • j: a posição de término da extração na string source, contando a partir de 1. O valor -1 especifica o caractere mais à direita da string. Tipo de dado: inteiro.

Valor de retorno

Retorna a substring s[i, j] extraída da string source especificada por s.

Exemplo

//Note: The two methods that are used to determine whether a file is an M3U8 file.
if eq(substr($uri, -5, -1), '.m3u8') {
    say(concat($uri, ' is .m3u8'))
}

uri_len = len($uri)
if eq(substr($uri, -5, uri_len), '.m3u8') {
    say(concat($uri, ' is .m3u8'))
}

concat

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

concat(s1, ...)

Descrição

Concatena strings.

Parâmetro

As strings a serem concatenadas. É possível especificar uma ou mais strings. Valores numéricos são aceitos.

Valor de retorno

Retorna a string concatenada.

Exemplo

// Concatenates the following strings
str1 = 'hello'
str2 = ' '
str3 = 'world'
say(concat(str1, str2, str3))

Saída:

  hello world

upper

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

upper(s)

Descrição

Converte uma string para letras maiúsculas.

Parâmetro

s: a string a ser convertida.

Valor de retorno

Retorna a string especificada pelo parâmetro s em letras maiúsculas.

Exemplo

str = 'hello world'                                                                                                                                                                                   
say(upper(str)) 

Saída:

HELLO WORLD

lower

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

lower(s)

Descrição

Converte uma string para letras minúsculas.

Parâmetro

s: a string a ser convertida.

Valor de retorno

Retorna a string especificada pelo parâmetro s em letras minúsculas.

Exemplo

str = 'HELLO WORLD'
say(lower(str))

Saída:

hello world

len

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

len(s)

Descrição

Consulta o comprimento de uma string.

Parâmetro

s: a string cujo comprimento se deseja medir.

Valor de retorno

Retorna o comprimento da string especificada pelo parâmetro s. Tipo de dado: inteiro.

Exemplo

str = 'hello world'
say(len(str)) // Returns the length of str. Here is 11.

byte

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

byte(c)

Descrição

Consulta o valor ASCII de um caractere.

Parâmetro

c: o caractere cujo valor ASCII se deseja consultar. Apenas um caractere pode ser especificado.

Valor de retorno

Retorna o valor ASCII do caractere especificado. Tipo de dado: numérico.

Exemplo

say(byte('a'))
say(byte('A'))

Saída:

97
    65

match_re

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

match_re(s, p [, o])

Descrição

Utiliza o mecanismo Perl Compatible Regular Expressions (PCRE) para correspondência de expressões regulares. Para mais informações, consulte sintaxe PCRE.

Parâmetro

  • s: a string a ser comparada. Tipo de dado: string.

  • p: a expressão regular para correspondência. Tipo de dado: string.

  • o: o mecanismo de expressão regular. Tipo de dado: string. Este parâmetro é opcional.

    • valor vazio: indica que a função diferencia maiúsculas de minúsculas.

    • i: indica que a função não diferencia maiúsculas de minúsculas.

Valor de retorno

Quando a string corresponde à expressão regular, retorna true. Caso contrário, retorna false.

Exemplo

str = 'Hello'
// An exact match with "Hello"
say(match_re(str, 'Hello'))
// A case-insensitive match with "Hello" 
say(match_re(str, 'hello', i))
// Matches any string that ends with the letter "l"
say(match_re(str, '.*l$'))

Saída:

true
    true
    false

capture_re

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

capture_re(s, p [,init])

Descrição

Captura as correspondências de uma string e retorna as substrings correspondentes. Para mais informações sobre PCRE, consulte sintaxe PCRE.

Parâmetro

  • s: a string a ser comparada. Tipo de dado: string.

  • p: a expressão regular para correspondência. Tipo de dado: string.

  • init: a posição de início da correspondência, contando a partir de 1. Tipo de dado: inteiro.

Valor de retorno

Quando a string corresponde à expressão regular, retorna as substrings correspondentes no tipo dicionário. Caso contrário, um dicionário vazio é retornado.

Exemplo

pcs = capture_re($request_uri,'^/([^/]+)/([^/]+)([^?]+)\?(.*)')
sec1 = get(pcs, 1)
sec2 = get(pcs, 2)
sec3 = get(pcs, 3)
if or(not(sec1), not(sec2), not(sec3)) {
   add_rsp_header('X-TENGINE-ERROR', 'auth failed - missing necessary uri set')
   exit(403)
}
digest = md5(concat(sec1, sec3))
if ne(digest, sec2) {
    add_rsp_header('X-TENGINE-ERROR', 'auth failed - invalid digest')
    exit(403)
}                                                                                                                                                      

Exemplo de resposta

"X-TENGINE-ERROR:auth failed - missing necessary uri set"

gsub_re

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

gsub_re(subject, regex, replace [,option])

Descrição

Substitui todas as ocorrências de uma string e retorna a string resultante. Para mais informações sobre PCRE, consulte sintaxe PCRE.

Parâmetro

  • subject: a string que você deseja corresponder. Tipo de dado: string.

  • regex: a expressão regular. Tipo de dado: string.

  • replace: a string de substituição. Tipo de dado: string.

    Especifique o parâmetro replace usando as substrings correspondentes.

    • $0: especifique todas as substrings que correspondem a regex.

    • $N: especifique a substring que corresponde à N-ésima subexpressão entre parênteses () de regex.

  • option: o mecanismo de expressão regular. Tipo de dado: string. Este parâmetro é opcional.

Valor de retorno

Substitui todas as substrings que correspondem ao parâmetro regex especificado no parâmetro subject especificado pelos valores definidos no parâmetro replace e retorna a string resultante.

Exemplo

subject = 'Hello, Es'
regex = '([a-zA-Z])[a-z]+'
replace = '[$0,$1]'
add_rsp_header('X-DEBUG-GSUB-RE', gsub_re(subject, regex, replace))                                                                                                                                    

Exemplo de resposta

"X-DEBUG-GSUB-RE:[Hello,H], [Es,E]"

split

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

split(s [,sep])

Descrição

Divide uma string em um array de substrings e retorna o array.

Parâmetro

  • s: a string que você deseja dividir. Tipo de dado: string.

  • sep: o separador utilizado para dividir a string. Tipo de dado: string.

Valor de retorno

Retorna um array de pares chave-valor no tipo dicionário. O valor do parâmetro key é um número que começa em 1, por exemplo, [1]=xx e [2]=y. Se sep for deixado em branco, a string é dividida por caracteres de espaço em branco. Esses caracteres incluem espaços e tabulações (\t).

Exemplo

if $arg_from {
    t = split($arg_from, ',')
    if get(t, 1) {
        say(concat('[1]=', get(t, 1)))
    }
    if get(t, 2) {
        say(concat('[2]=', get(t, 1)))
    }
}                                                                                                                                

Requisição:

http://www.example.com?from=xx1,xx2,xx3

Saída:

[1]=xx1
    [2]=xx1

split_as_key

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

split_as_key(s [,sep])

Descrição

Divide uma string em um array de substrings e retorna o array.

Parâmetro

  • s: a string que você deseja dividir. Tipo de dado: string.

  • sep: o separador utilizado para dividir a string. Tipo de dado: string.

Valor de retorno

Retorna os parâmetros de resposta da mesma forma que a função split(). Contudo, o parâmetro key recebe o nome de cada elemento resultante da divisão: Element 1 -> Element 2.

Exemplo

def echo_each(k, v, u) {
    s = concat(k, '=', v, ' u=', get(u, 1))
    say(s) 
}
if $arg_from {
    t = split_as_key($arg_from, ',')
    foreach(t, echo_each, ['hi,dsl'])
}                                                                                                                                  

Requisição:

http://www.example.com?from=xx1,xx2,xx3

Saída:

xx2=xx2 u=hi,dsl
    xx1=xx1 u=hi,dsl
    xx3=xx3 u=hi,dsl

tohex

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

tohex(s)

Descrição

Converte uma string em uma string hexadecimal.

Parâmetro

s: a string que você deseja converter.

Valor de retorno

Retorna uma string hexadecimal convertida a partir da string especificada pelo parâmetro s.

Exemplo

digest = sha1('xxxx')
add_rsp_header('X-DSL-TOHEX', tohex(digest))

Exemplo de resposta

"X-DSL-TOHEX: 4ad583af22c2e7d40c1c916b2920299155a46464"

tostring

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

tostring(a)

Descrição

Converte dados de qualquer tipo em uma string.

Parâmetro

a: os dados que você deseja converter. Tipo de dado: qualquer tipo.

Valor de retorno

Retorna uma string convertida a partir do valor especificado pelo parâmetro a.

Exemplo

say(tostring(123))

Saída:

123

tochar

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

tochar(n1, n2, ...)

Descrição

  • Converte um ou mais inteiros internos (valores ASCII) em uma string. Por exemplo, 48 corresponde ao caractere "0".

  • O comprimento da string retornada é determinado pela quantidade de parâmetros especificados.

Parâmetro

nX: os inteiros que você deseja converter. É possível especificar um ou mais inteiros.

Valor de retorno

Retorna uma string convertida a partir dos inteiros especificados.

Exemplo

say(tochar(97))
say(tochar(65))

Saída:

a
    A

reverse

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

reverse(str)

Descrição

Inverte uma string.

Parâmetro

str: a string que você deseja inverter.

Valor de retorno

Retorna a string invertida a partir da string especificada.

Exemplo

say(reverse('hello'))

Saída:

olleh

find

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

string.find (s, substr, pos)

Descrição

Busca uma substring em uma string especificada.

Parâmetro

  • s: a string em que você deseja pesquisar.

  • substr: a substring que você deseja localizar.

  • pos: a posição em que a pesquisa começa. Tipo de dado: numérico. Este parâmetro é opcional. É possível especificar um inteiro negativo. O valor padrão é 1.

Valor de retorno

  • Retorna um array se a substring especificada for encontrada.

    • O índice 1 indica a posição em que a correspondência começa.

    • O índice 2 indica a posição em que a correspondência termina.

  • Retorna um array vazio se a substring especificada não for encontrada.

Exemplo

str = 'hello world'
say(concat('r start pos: ',get(find(str, 'r'), 1)))
say(concat('r end pos: ',get(find(str, 'r'), 2)))
say(concat('rl start pos: ',get(find(str, 'rl'), 1)))
say(concat('rl end pos: ',get(find(str, 'rl'), 2)))

Saída:

r start pos: 9
    r end pos: 9
    rl start pos: 9
    rl end pos: 10

format

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

format(fmt, ···)

Descrição

Formata os valores de um ou mais parâmetros. A string de formato é o primeiro parâmetro e deve ser do tipo string. Ela segue a especificação do parâmetro sprintf utilizado pelas funções da linguagem de programação C.

A sintaxe de uma string de formato é: %[parâmetro][flag][largura do campo][.precisão]especificador.

  • %%: imprime o sinal de porcentagem literal (%).

  • %c: converte inteiros em caracteres ASCII.

  • %d: converte inteiros em números decimais.

  • %f: converte números de N casas de precisão em números de ponto flutuante.

  • %o: converte inteiros em números octais.

  • %s: converte inteiros em strings.

  • %x: converte inteiros em números hexadecimais em letras minúsculas.

  • %X: converte inteiros em números hexadecimais em letras maiúsculas.

Parâmetro

  • fmt: do tipo string. Este parâmetro especifica a string de formato.

  • O número variável de parâmetros: qualquer tipo.

Valor de retorno

Retorna uma string ASCII.

Exemplo

say(concat('format:', format('%%%s$%.2s$%s$%c$%d$%2.2f$%.2o$%x$%X', 'format', 3.1415926, true, 95, 3.1415926, 3.1415926, 3.1415926, 10, 10)))

Saída:

format:%format$3.$true$_$3$3.14$03$a$A

tobin

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

tobin(str)

Descrição

Converte uma string hexadecimal em uma string ASCII.

Parâmetro

str: a string hexadecimal a ser convertida. Não diferencia maiúsculas de minúsculas.

Valor de retorno

Retorna uma string ASCII.

Exemplo

say(concat('tobin:', tobin('2F2F')))

Saída:

tobin://

trim

A tabela a seguir descreve os detalhes desta função.

Feature

Description

Sintaxe

trim(s, [, loc])

Descrição

Remove todos os caracteres de espaço em branco antes ou após a string especificada pelo parâmetro s e retorna a string sem os caracteres de espaço em branco indicados.

Parâmetro

  • s: a string.

  • loc: o valor padrão é both. Este parâmetro é opcional. Valores válidos:

    • both: remove os caracteres de espaço em branco antes e após a string.

    • left: remove apenas os caracteres de espaço em branco antes da string.

    • right: remove apenas os caracteres de espaço em branco após a string.

Valor de retorno

Retorna a string sem os caracteres de espaço em branco especificados.

Exemplo

say(concat('trim():', trim(' abcd ')))
say(concat('trim(left):', trim(' abcd', 'left')))
say(concat('trim(right):', trim('abcd ', 'right')))

Saída:

trim():abcd
    trim(left):abcd
    trim(right):abcd