すべてのプロダクト
Search
ドキュメントセンター

CDN:文字列関数

最終更新日:Dec 03, 2024

このトピックでは、文字列関数の構文、説明、パラメーター、および戻り値について説明します。 このトピックでは、これらの関数の例も示します。

substr

この関数の詳細を次の表に示します。

機能

説明

構文

substr(s, i, j)

説明

文字列からパーツを抽出します。

パラメーター

  • s: ソース文字列。

  • i: ソース文字列で抽出を開始する位置 (1からカウント) 。 値-1は、文字列の右端の文字を指定します。 データ型: 整数。

  • j: ソース文字列内の抽出を終了する位置 (1からカウント) 。 値-1は、文字列の右端の文字を指定します。 データ型: 整数。

戻り値

sで指定されたソース文字列から抽出された部分文字列s[i, j] を返します。

例:

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

この関数の詳細を次の表に示します。

機能

説明

構文

concat(s1, ...)

説明

文字列を連結します。

パラメーター

連結する文字列。 1つ以上の文字列を指定できます。 数値がサポートされています。

戻り値

連結された文字列を返します。

例:

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

出力:

  hello world

upper

この関数の詳細を次の表に示します。

機能

説明

構文

アッパー

説明

文字列を大文字に変換します。

パラメーター

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)) // Returns the length of str. Here is 11.

バイト

この関数の詳細を次の表に示します。

機能

説明

構文

バイト (c)

説明

文字のASCII値を照会します。

パラメーター

c: ASCII値を照会する文字。 指定できる文字は1文字だけです。

戻り値

指定した文字のASCII値を返します。 データ型: numeric。

例:

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

出力:

97
65

match_re

この関数の詳細を次の表に示します。

機能

説明

構文

match_re(s, p [, o])

説明

正規表現マッチングにPerl互換正規表現 (PCRE) エンジンを使用します。 詳細については、「PCRE構文」をご参照ください。

パラメーター

  • s: 一致させたい文字列。 データ型: 文字列。

  • p: マッチングの正規表現。 データ型: 文字列。

  • o: 正規表現エンジン。 データ型: 文字列。 このパラメーターはオプションです。

    • empty value: この関数が大文字と小文字を区別することを指定します。

    • i: この関数が大文字と小文字を区別しないことを指定します。

戻り値

文字列が正規表現と一致する場合、trueが返されます。 それ以外の場合、falseが返されます。

例:

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

出力:

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: 認証が失敗しました-必要なuriセットがありません」

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:[こんにちは、H] 、[Es、E] 」

split

この関数の詳細を次の表に示します。

機能

説明

構文

split(s [,sep])

説明

文字列を部分文字列の配列に分割し、配列を返します。

パラメーター

  • s: 分割する文字列。 データ型: 文字列。

  • sep: 文字列を分割するために使用されるセパレータ。 データ型: 文字列。

戻り値

ディクショナリ型のキーと値のペアの配列を返します。 keyパラメーターの値は、[1]=xxや [2]=yなど、1から始まる数値です。 sepが空の場合、文字列は空白文字で分割されます。 空白文字には、スペース文字とタブ文字 (\t) が含まれます。

例:

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パラメーターは、各分割要素にちなんで要素1要素2という名前が付けられます。

例:

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)

説明

文字列を16進文字列に変換します。

パラメーター

s: 変換する文字列。

戻り値

sパラメーターで指定された文字列から変換された16進文字列を返します。

例:

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

レスポンスの例

「X-DSL-TOHEX: 4ad583af22c2e7d40c1c916b2920299155a46464」

tostring

この関数の詳細を次の表に示します。

機能

説明

構文

tostring(a)

説明

任意の型のデータを文字列に変換します。

パラメーター

a: 変換するデータ。 データ型: 任意の型。

戻り値

パラメーターで指定された値から変換された文字列返します。

例:

say(tostring(123))

出力:

123

tochar

この関数の詳細を次の表に示します。

機能

説明

構文

tochar(n1、n2、...)

説明

  • 1つ以上の内部整数 (ASCII値) を文字列に変換します。 例えば、48は文字「0」に対応する。

  • 返される文字列の長さは、指定されたパラメーターの数に基づいています。

パラメーター

nX: 変換する整数。 1つ以上の整数を指定できます。

戻り値

整数から変換された文字列を返します。

例:

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

出力:

a
A

reverse

この関数の詳細を次の表に示します。

機能

説明

構文

リバース (str)

説明

文字列を反転します。

パラメーター

str: 反転する文字列。

戻り値

指定した文字列から反転した文字列を返します。

例:

say(reverse('hello'))

出力:

olleh

検索

この関数の詳細を次の表に示します。

機能

説明

構文

string.find (s, substr, pos)

説明

指定した文字列で部分文字列を検索します。

パラメーター

  • s: 検索する文字列。

  • substr: 検索する部分文字列。

  • pos: 検索を開始する位置。 データ型: numeric。 このパラメーターはオプションです。 負の整数を指定できます。 デフォルト値は 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

フォーマット

この関数の詳細を次の表に示します。

機能

説明

構文

フォーマット (fmt, · · ·)

説明

1つ以上のパラメータの値をフォーマットします。 format文字列は最初のパラメーターで、文字列を指定する必要があります。 format文字列は、Cプログラミング言語の関数で使用されるsprintfパラメーターの仕様に従います。

フォーマット文字列の構文は、%[parameter][flag][field width][.precision] 指定子です。

  • %%: リテラルのパーセンテージ記号 (%) を印刷します。

  • % c: 整数をASCII文字に変換します。

  • % d: 整数を10進数に変換します。

  • % f: N精度の数値を浮動小数点数に変換します。

  • % o: 整数を8進数に変換します。

  • % s: 整数を文字列に変換します。

  • % x: 整数を小文字の16進数に変換します。

  • % X: 整数を大文字の16進数に変換します。

パラメーター

  • fmt: 文字列型。 フォーマット文字列を指定します。

  • パラメータの可変数: 任意の型。

戻り値

ACSII文字列を返します。

例:

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

説明

16進文字列をASCII文字列に変換します。

パラメーター

str: 変換する16進文字列。 大文字と小文字は区別されません。

戻り値

ACSII文字列を返します。

例:

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

出力:

tobin://

トリム

この関数の詳細を次の表に示します。

機能

説明

構文

trim(s, [, loc])

説明

sパラメーターで指定された文字列の前または後のすべての空白文字を削除し、指定された空白文字が削除された文字列を返します。

パラメーター

  • s: 文字列。

  • loc: デフォルト値は両方です。 このパラメーターはオプションです。 有効な値:

    • 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