Todos os produtos
Search
Central de documentação

Edge Security Acceleration:Funções de string

Última atualização: Jun 29, 2026

Este tópico descreve a sintaxe, os parâmetros e os valores de retorno das funções de string. Também apresenta exemplos de uso dessas funções.

substr

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxesubstr(s, i, j)
DescriçãoExtrai partes de uma string.
Parâmetro
  • s: a string da qual extrair o conteúdo.
  • i: a posição inicial da extração na string source, começando em 1. O valor -1 indica o caractere mais à direita da string. Tipo de dado: inteiro.
  • j: a posição final da extração na string source, começando em 1. O valor -1 indica o caractere mais à direita da string. Tipo de dado: inteiro.
Valor de retornoRetorna uma 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 detalha esta função.

RecursoDescrição
Sintaxeconcat(s1, ...)
DescriçãoConcatena strings.
ParâmetroStrings a concatenar. É possível especificar uma ou mais strings. Valores numéricos também são aceitos.
Valor de retornoRetorna a string concatenada.
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'))
}

upper

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxeupper(s)
DescriçãoConverte uma string para letras maiúsculas.
Parâmetros: a string a converter.
Valor de retornoRetorna a string especificada pelo parâmetro s em letras maiúsculas.
Exemplo
mystr = 'Hello, Dsl'                                                                                                                                                                                   
say(upper(mystr))                                                                                                                                                                                      
say(lower(mystr)) 
//Output:
//HELLO,DSL
//hello, dsl

lower

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxelower(s)
DescriçãoConverte uma string para letras minúsculas.
Parâmetros: a string a converter.
Valor de retornoRetorna a string especificada pelo parâmetro s em letras minúsculas.
Exemplo
mystr = 'Hello, Dsl'                                                                                                                                                                                   
say(upper(mystr))                                                                                                                                                                                      
say(lower(mystr)) 
//Output:
//HELLO,DSL
//hello, dsl

len

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxelen(s)
DescriçãoObtém o comprimento de uma string.
Parâmetros: a string a medir.
Valor de retornoRetorna o comprimento da string especificada pelo parâmetro s. Tipo de dado: inteiro.
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'))
}

byte

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxebyte(c)
DescriçãoObtém o valor ASCII de um caractere.
Parâmetroc: o caractere cujo valor ASCII obter. Apenas um caractere pode ser especificado.
Valor de retornoRetorna o valor ASCII do caractere especificado. Tipo de dado: numérico.
Exemplo
say(byte('a'))
say(byte('A'))
//Output: 97
//65

match_re

RecursoDescrição
Sintaxematch_re(s, p [, o])
DescriçãoVerifica se uma string corresponde a uma expressão regular usando o mecanismo Perl Compatible Regular Expressions (PCRE). Para obter mais informações, consulte Sintaxe de expressões regulares PCRE.
Parâmetro
  • s: A string source. Tipo: string.
  • p: A expressão regular. Tipo: string.
  • o: Uma string opcional para opções do mecanismo.
    • Se omitido, a correspondência diferencia maiúsculas de minúsculas.
    • Se definido como i, a correspondência não diferencia maiúsculas de minúsculas.
Valor de retornoRetorna true se a string corresponder ao padrão e false caso contrário.
Exemplo
url = concat('http://', $host, $uri)
m1 = match_re(url, 'http://.*\.example\.com/.*', 'i')
m2 = match_re(url, '^http://.*\.aliyundoc\.com\.cn/.*\.d\\.html(\?.*)?$')
m3 = match_re(url, '^http://.*.demo.aliyundoc/.*\.d\.html(\?.*)?$')
m4 = match_re(url, '^http://.*\.aliyundoc\.com\.cn/zt_d/')
m5 = match_re(url, '^http://learn.aliyundoc.com.cn/zt_d/we2015/?$')
m6 = match_re($args, 'from=wap1$')
m7 = match_re($args, 'from=comos1$')

if and(m1, or(m2, m3), not(m4), not(m5), or(not(m6), not(m7))) {                                                                                                                                       
    add_rsp_header('USER-DEFINED-1', 'hit1')                                                                                                                                                           
    add_rsp_header('USER-DEFINED-2', 'hit2')                                                                                                                                                         

capture_re

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxecapture_re(s, p [,init])
DescriçãoCaptura as correspondências de uma string e retorna as substrings correspondentes. Para obter mais informações sobre PCRE, consulte Sintaxe PCRE.
Parâmetro
  • s: a string a corresponder. Tipo de dado: string.
  • p: a expressão regular para correspondência. Tipo de dado: string.
  • init: a posição inicial da correspondência, começando em 1. Tipo de dado: inteiro.
Valor de retornoRetorna as substrings correspondentes no tipo dicionário se a string corresponder à expressão regular. Caso contrário, retorna um dicionário vazio.
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)
}                                                                                                                                                      

gsub_re

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxegsub_re(subject, regex, replace [,option])
DescriçãoSubstitui todas as correspondências em uma string e retorna a string após a substituição. Para obter mais informações sobre PCRE, consulte Sintaxe PCRE.
Parâmetro
  • subject: a string a corresponder. Tipo de dado: string.
  • regex: a expressão regular. Tipo de dado: string.
  • replace: a string de substituição. Tipo de dado: string.
    É possível especificar o parâmetro replace usando as substrings correspondentes.
    • $0: especifica todas as substrings que correspondem a regex.
    • $N: especifica 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 retornoSubstitui todas as substrings que correspondem ao parâmetro regex especificado no parâmetro subject 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))         
//Output:
//X-DEBUG-GSUB-RE: [Hello,H], [Es,E]                                                                                                                                      

split

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxesplit(s [,sep])
DescriçãoDivide uma string em um array de substrings e retorna o array.
Parâmetro
  • s: a string a dividir. Tipo de dado: string.
  • sep: o separador usado para dividir a string. Tipo de dado: string.
Valor de retornoRetorna 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 vazio, a string será dividida por caracteres de espaço em branco. Caracteres de espaço em branco 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)))
    }
}         
//Request: ?from=xx1,xx2,xx3 
//Response: [1]=xx1
//[2]=xx1                                                                                                                                   

split_as_key

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxesplit_as_key(s [,sep])
DescriçãoDivide uma string em um array de substrings e retorna o array.
Parâmetro
  • s: a string a dividir. Tipo de dado: string.
  • sep: o separador usado para dividir a string. Tipo de dado: string.
Valor de retornoRetorna parâmetros de resposta da mesma forma que a função split(). No entanto, o parâmetro key recebe o nome de cada elemento dividido: 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'])
}    
//Request: ?from=xx1,xx2,xx3 
//Response: xx2=xx2 u=hi,dsl
//xx1=xx1 u=hi,dsl
//xx3=xx3 u=hi,dsl                                                                                                                                   

tohex

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxetohex(s)
DescriçãoConverte uma string em uma string hexadecimal.
Parâmetros: a string a converter.
Valor de retornoRetorna 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))    

//Note: A response header is added.
//X-DSL-TOHEX: 4ad583af22c2e7d40c1c916b2920299155a46464                                                                                                                                     

tostring

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxetostring(a)
DescriçãoConverte dados de qualquer tipo em uma string.
Parâmetroa: os dados a converter. Tipo de dado: qualquer tipo.
Valor de retornoRetorna uma string convertida a partir do valor especificado pelo parâmetro a.
Exemplo
s = tostring(123)
add_rsp_header('X-DSL-TOSTRING', s)  

//Note: A response header is added.
//X-DSL-TOSTRING: 123                                                                                                                            

tochar

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxetochar(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 baseia-se no número de parâmetros especificados.
ParâmetronX: os inteiros a converter. É possível especificar um ou mais inteiros.
Valor de retornoRetorna uma string convertida a partir de inteiros.
Exemplo
add_rsp_header('X-DSL-TOCHAR', tochar(97))
add_rsp_header('X-DSL-TOCHAR', tochar(97, 98), true)
//Output: A response header is added.
//X-DSL-TOCHAR: a
//X-DSL-TOCHAR: ab

if $arg_filename {
    hn = 'Content-Disposition'
    add_rsp_header('Content-Disposition', concat('attachment;filename=', tochar(34), filename, tochar(34)))
    add_rsp_header(hn, hv)
}     
//Output: A response header is added.
//Content-Disposition: attachment;filename="The value of the filename parameter"                                                                                                                                    

reverse

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxereverse(str)
DescriçãoInverte uma string.
Parâmetrostr: a string a inverter.
Valor de retornoRetorna a string invertida.
Exemplo
say(reverse('hello'))
Saída:
#olleh

find

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxestring.find (s, substr, pos)
DescriçãoBusca uma substring dentro de uma string especificada.
Parâmetro
  • s: a string onde buscar.
  • substr: a substring a buscar.
  • pos: a posição onde a busca 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 onde a busca começa.
    • O índice 2 indica a posição onde a busca termina.
  • Retorna um array vazio se a substring especificada não for encontrada.
Exemplo
 str = 'hello dsl'
 add_rsp_header('string-find()-start', tostring(get(find(str, 'dsl'), 1)))
 str = 'hello dsl 12'
 add_rsp_header('string-find()-end', tostring(get(find(str, 'dsl'), 2)))
 str = 'hello dsl'
 add_rsp_header('string-find()-tail-start', tostring(get(find(str, 'dsl', -6), 1)))
 str = 'hello dsl 12'
 add_rsp_header('string-find()-tail-end', tostring(get(find(str, 'dsl', -6), 2)))
Saída:
string-find()-start:7
    string-find()-end:9
    string-find()-tail-start:7
    string-find()-tail-end:9

format

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxeformat(fmt, ···)
DescriçãoFormata os valores de um ou mais parâmetros. A string de formato é o primeiro parâmetro e deve ser uma string. Ela segue a especificação do parâmetro sprintf usado por funções na linguagem de programação C.
A sintaxe de uma string de formato é: %[parâmetro][flag][largura do campo][.precisão]especificador.
  • %%: imprime sinais de porcentagem literais (%).
  • %c: converte inteiros em caracteres ASCII.
  • %d: converte inteiros em números decimais.
  • %f: converte números com precisão N 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 com letras minúsculas.
  • %X: converte inteiros em números hexadecimais com letras maiúsculas.
Parâmetro
  • fmt: tipo string. Este parâmetro especifica uma string de formato.
  • Número variável de parâmetros: qualquer tipo.
Valor de retornoRetorna 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 detalha esta função.

RecursoDescrição
Sintaxetobin(str)
DescriçãoConverte uma string hexadecimal em uma string ASCII.
Parâmetrostr: a string hexadecimal a converter. Não diferencia maiúsculas de minúsculas.
Valor de retornoRetorna uma string ASCII.
Exemplo
say(concat('tobin:', tobin('2F2F')))
Saída:
tobin://

trim

A tabela a seguir detalha esta função.

RecursoDescrição
Sintaxetrim(s, [, loc])
DescriçãoRemove todos os caracteres de espaço em branco antes ou depois da string especificada pelo parâmetro s e retorna a string sem esses caracteres.
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 depois da string.
    • left: remove apenas os caracteres de espaço em branco antes da string.
    • right: remove apenas os caracteres de espaço em branco depois da string.
Valor de retornoRetorna a string com os caracteres de espaço em branco especificados removidos.
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