日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

字符串類型相關

本文為您介紹字符串類型相關函數的語法、說明、參數、返回值和示例。

substr

函數詳細信息,請參見下表。

項目

描述

語法

substr(s, i, j)

說明

字符串截取操作。

參數

  • s:目標字符串。

  • i:整型,截取起始下標。從1開始,-1表示字符串最尾字符。

  • j:整型,截取終止下標。從1開始,-1表示字符串最尾字符。

返回值

返回s的子字符串s[i, j]

示例

//說明:判斷文件類型是否為.m3u8的兩種方法:
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

函數詳細信息,請參見下表。

項目

描述

語法

concat(s1, ...)

說明

字符串連接操作。

參數

一個或多個參數,參數類型允許為數字字符串。

返回值

將多個參數連接為一個字符串,并返回該字符串。

示例

// 下面展示將三個字符串拼接起來
str1 = 'hello'
str2 = ' '
str3 = 'world'
say(concat(str1, str2, str3))

輸出:

  hello world

upper

函數詳細信息,請參見下表。

項目

描述

語法

upper(s)

說明

將字符串中所有的小寫字母轉換成大寫字母。

參數

s:目標字符串。

返回值

返回大寫s

示例

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

輸出:

HELLO WORLD

lower

函數詳細信息,請參見下表。

項目

描述

語法

lower(s)

說明

將字符串中所有的大寫字母轉換成小寫字母。

參數

s:目標字符串。

返回值

返回小寫s

示例

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

輸出:

hello world

len

函數詳細信息,請參見下表。

項目

描述

語法

len(s)

說明

獲取字符串的長度。

參數

s:目標字符串。

返回值

返回s的長度,整型。

示例

str = 'hello world'
say(len(str)) // 返回str的長度,這里是11

byte

函數詳細信息,請參見下表。

項目

描述

語法

byte(c)

說明

獲取字符的ASCII碼。

參數

c:目標字符,必須為單個字符。

返回值

返回對應的ASCII碼,數字類型。

示例

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

輸出:

97
65

match_re

函數詳細信息,請參見下表。

項目

描述

語法

match_re(s, p [, o])

說明

使用PCRE正則引擎,進行正則匹配,判斷字符串是否匹配對應的正則表達式。詳細信息,請參見PCRE正則語法

參數

  • s:目標字符串,字符類型。

  • p:正則表達式,字符類型。

  • o:正則引擎參數,字符類型,可選填。

    • 不填寫:則區分大小寫。

    • 填寫為i:則不區分大小寫。

返回值

匹配成功返回true,否則返回false

示例

str = 'Hello'
// 完全匹配Hello字符
say(match_re(str, 'Hello'))
// 匹配hello忽略大小寫
say(match_re(str, 'hello', i))
// 匹配以l結尾的字符
say(match_re(str, '.*l$'))

輸出:

true
true
false

capture_re

函數詳細信息,請參見下表。

項目

描述

語法

capture_re(s, p [,init])

說明

正則捕獲,并返回捕獲結果。使用PCRE正則引擎,詳細信息,請參見PCRE正則語法

參數

  • s:目標字符串,字符類型。

  • p:正則表達式,字符類型。

  • init:指定匹配開始位置,下標從1開始,整型。

返回值

匹配成功的若干子串通過字典類型返回,匹配失敗返回空字典。

示例

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)
}                                                                                                                                                      

響應示例

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

gsub_re

函數詳細信息,請參見下表。

項目

描述

語法

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

說明

正則替換,并返回替換后的副本。使用PCRE正則引擎,詳細信息,請參見PCRE正則語法

參數

  • subject:目標字符串,字符類型。

  • regex:正則表達式,字符類型。

  • replace:替換字符,字符類型。

    replace部分可以引用匹配部分,即:

    • $0:表示regex整體匹配的部分。

    • $N:表示regex第N個()匹配的部分。

  • option:正則引擎參數,字符類型,可選。

返回值

subject中所有的符合參數regex的子串都將被參數replace所指定的字符串所替換,并返回替換后的副本。

示例

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

響應示例

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

split

函數詳細信息,請參見下表。

項目

描述

語法

split(s [,sep])

說明

分隔字符串,并返回分隔結果。

參數

  • s:目標字符串,字符類型。

  • sep:字符類型。

返回值

分隔元素包含在字典類型中返回,由數字下標作key,起始下標為1,例如:[1]=xx, [2]=yy;若sep為空,則默認以任意空白字符分隔。默認空白字符包含:空格、Tab。

示例

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)))
    }
}                                                                                                                                

請求:

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

輸出:

[1]=xx1
[2]=xx1

split_as_key

函數詳細信息,請參見下表。

項目

描述

語法

split_as_key(s [,sep])

說明

分隔字符串,并返回分隔結果。

參數

  • s:目標字符串,字符類型。

  • sep:分隔符,字符類型。

返回值

split(),區別在于key[分割元素]->[分割元素]

示例

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'])
}                                                                                                                                  

請求:

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

輸出:

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

tohex

函數詳細信息,請參見下表。

項目

描述

語法

tohex(s)

說明

十六進制轉換。

參數

s:字符串。

返回值

返回s的十六進制可讀形式。

示例

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

響應示例

"X-DSL-TOHEX: 4ad583af22c2e7d40c1c916b2920299155a46464"

tostring

函數詳細信息,請參見下表。

項目

描述

語法

tostring(a)

說明

字符串類型轉換。

參數

a:任意類型。

返回值

返回參數a轉換后的字符串。

示例

say(tostring(123))

輸出:

123

tochar

函數詳細信息,請參見下表。

項目

描述

語法

tochar(n1, n2, ...)

說明

  • 接受1個或多個整型參數,整型參數為ASCII值,例如“0”的ASCII值為48,則tochar(48)就返回字符“0”。

  • 返回字符串的長度為參數個數。

參數

nX:整型參數,ASCII值。

返回值

返回轉換后的字符串。

示例

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

輸出:

a
A

reverse

函數詳細信息,請參見下表。

項目

描述

語法

reverse(str)

說明

字符串反轉。

參數

str:待反轉的字符串。

返回值

返回字符類型,返回反轉后的字符串。

示例

say(reverse('hello'))

輸出:

olleh

find

函數詳細信息,請參見下表。

項目

描述

語法

string.find (s, substr, pos)

說明

在目標字符串中搜索指定的字符串。

參數

  • s:待查找的字符串。

  • substr:需要查找的子串。

  • pos(可選參數):該參數為索引,類型為數值,指定查找的起始位置。可以為負數,默認起始位置為1。

返回值

  • 成功:返回數組類型。

    • 索引1,返回查找的起始位置。

    • 索引2,返回查找的截止位置。

  • 失敗:返回空數組。

示例

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)))

輸出:

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

format

函數詳細信息,請參見下表。

項目

描述

語法

format(fmt, ···)

說明

返回不定數量參數的格式化版本,格式化串為第一個參數(必須是一個字符串)。格式化字符串遵循ISO C函數sprintf的規則。

fmt規則格式為:%[指定參數][標識符][寬度][.精度]指示符

  • %%:印出百分比符號,不轉換。

  • %c:整數轉換成對應的ASCII字元。

  • %d:整數轉換成十進位。

  • %f:倍精確度數字轉換成浮點數。

  • %o:整數轉換成八進位。

  • %s:整數轉換成字符串。

  • %x:整數轉換成小寫十六進位。

  • %X:整數轉換成大寫十六進位。

參數

  • fmt:string類型,格式化字符串。

  • 可變參數:可以為任意類型。

返回值

返回值為string類型。

示例

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)))

輸出:

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

tobin

函數詳細信息,請參見下表。

項目

描述

語法

tobin(str)

說明

16進制轉ASCII字符串。

參數

str:雙字節16進制字符串,不區分大小寫。

返回值

返回值為string類型。

示例

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

輸出:

tobin://

trim

函數詳細信息,請參見下表。

項目

描述

語法

trim(s, [, loc])

說明

剔除s兩端或指定端的全部空白字符,并返回剔除后的字符串。

參數

  • s : 目標字符串。

  • loc(可選參數):默認為both,可用值如下:

    • both:剔除兩端。

    • left:僅剔除左端。

    • right:僅剔除右端。

返回值

返回剔除后的字符串。

示例

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

輸出:

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