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

ApsaraVideo VOD:文字列関数

最終更新日:Aug 27, 2026

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

substr

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

特徴

説明

構文

substr(s, i, j)

説明

指定された開始位置から終了位置までの部分文字列を抽出します。

パラメーター

  • s:ソース文字列

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

  • j:抽出を終了する位置。このパラメーターは長さ (length) ではなく、終了位置のインデックスを指定することに注意してください。1 から数えます。値 -1 は文字列の右端の文字を指定します。データ型:整数

戻り値

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

// 注:ファイルが M3U8 ファイルかどうかを判定する 2 つの方法
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つ以上の文字列を指定できます。数値もサポートされます。

戻り値

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

使用例

// 次の文字列を連結します
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 値を取得する文字。1 文字のみ指定できます。

戻り値

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

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

出力:

97
65

match_re

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

機能

説明

構文

match_re(s, p [, o])

説明

PCRE (Perl 互換正規表現) エンジンを使用して、正規表現のマッチングを行います。詳細については、「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]=y)。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, 2)))
    }
}                                                                                                                                

リクエスト:

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

出力:

[1]=xx1
[2]=xx2

split_as_key

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

特徴

説明

構文

split_as_key(s [,sep])

説明

文字列を部分文字列に分割し、各部分文字列をキーと値として持つ連想配列を返します。

パラメーター

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

  • sep:文字列の分割に使用する区切り文字。データ型:文字列。

戻り値

split() 関数と同じ方法でレスポンスパラメーターを返します。 ただし、key パラメーターは各分割要素に従って命名されます:Element 1 -> Element 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:変換するデータ。 データ型:任意の型。

戻り値

パラメーター a で指定された値を文字列に変換して返します。

say(tostring(123))

出力:

"123"

tochar

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

機能

説明

構文

tochar(n1, n2, ...)

説明

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

  • 返される文字列の長さは、指定されたパラメーターの数によって決まります。

パラメーター

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

戻り値

整数から変換された文字列。

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 の開始位置: ',get(find(str, 'r'), 1)))
say(concat('r の終了位置: ',get(find(str, 'r'), 2)))
say(concat('rl の開始位置: ',get(find(str, 'rl'), 1)))
say(concat('rl の終了位置: ',get(find(str, 'rl'), 2)))

出力:

r の開始位置: 9
r の終了位置: 9
rl の開始位置: 9
rl の終了位置: 10

format

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

機能

説明

構文

format(fmt, ···)

説明

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

フォーマット文字列の構文は次のとおりです:%[パラメーター][フラグ][フィールド幅][.精度]変換指定子

  • %%:リテラルなパーセント記号 (%) を出力します。

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

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

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

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

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

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

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

パラメーター

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

  • 可変個引数:任意の型。

戻り値

ASCII 文字列を返します。

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

from_hex

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

機能

説明

構文

from_hex(str)

説明

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

パラメーター

str: 変換対象の 16 進数文字列。大文字と小文字は区別されません。

戻り値

ASCII 文字列を返します。

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

出力:

from_hex://

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