文字列関数

CLEMでは、ストリングを使用して以下の操作を実行できます。

  • 文字列の比較
  • 文字列の生成
  • 文字へのアクセス

CLEMでは、ストリングは、一致する二重引用符 ("string quotes") の間の任意の文字シーケンスです。 文字 (CHAR) には、任意の単一英数字を使用できます。 これらは、 CLEM 式で、 `z``A`、または `2`などの `<character>`の形式の単一逆引用符を使用して宣言されます。 範囲外の文字、または文字列に対する逆索引文字は、未定義の動作が生じます。

注: SQL プッシュバックを使用するストリングと使用しないストリングを比較すると、末尾にスペースが存在する場合に異なる結果が生成される可能性があります。
表 1. CLEM ストリング関数
関数 結果 説明
allbutfirst(N, STRING) String 最初の N 文字が除去された STRING の文字列を返します。
allbutlast(N, STRING) String 最後の文字が削除された STRING の文字列を返します。
alphabefore(STRING1, STRING2) ブール値 文字列のアルファベット順を確認するために用いられます。 STRING1STRING2を処理する場合 true を返します。
endstring(LENGTH, STRING) String 指定した文字列から最後の N 文字を抽出します。 文字列の長さが指定した長さよりも短いか、またはそれに等しい場合は、変更されません。
hasendstring(STRING, SUBSTRING) 整数 この関数は isendstring(SUBSTRING, STRING). と同じです。
hasmidstring(STRING, SUBSTRING) 整数 この関数は ismidstring(SUBSTRING, STRING) (組み込みサブストリング) と同じです。
hasstartstring(STRING, SUBSTRING) 整数 この関数は isstartstring(SUBSTRING, STRING) と同じです。
hassubstring(STRING, N, SUBSTRING) 整数 この関数は issubstring(SUBSTRING, N, STRING) と同じです。N のデフォルトは 1 です。
count_substring(STRING, SUBSTRING) 整数 指定したサブ文字列が文字列内に発生する回数を返します。 例えば、 count_substring("foooo.txt", "oo") は 3 を返します。
hassubstring(STRING, SUBSTRING) 整数 この関数は issubstring(SUBSTRING, 1, STRING) と同じです。N のデフォルトは 1 です。
isalphacode(CHAR) ブール値 CHAR が、文字コードが文字である指定された文字列(多くの場合はフィールド名) 内の文字である場合に、trueの値を戻します。 それ以外の場合、この関数は 0 の値を返します。 例えば、isalphacode(produce_num(1))です。
isendstring(SUBSTRING, STRING) 整数 文字列STRING がサブストリング SUBSTRING で終わる場合、この関数は、STRINGSUBSTRING の整数添え字を返します。 それ以外の場合、この関数は 0 の値を返します。
islowercode(CHAR) ブール値 CHAR が指定された文字列 (多くの場合はフィールド名) の小文字である場合に、真 (true) の値を返します。 それ以外の場合、この関数は 0 の値を返します。 例えば、islowercode(``) islowercode(country_name(2)) の両方が有効な式です。
ismidstring(SUBSTRING, STRING) 整数 SUBSTRINGSTRING の添え字であるが、STRING の最初の文字または最後の文字で始まっていない場合、この関数は、サブ文字列が開始する添え字を返します。 それ以外の場合、この関数は 0 の値を返します。
isnumbercode(CHAR) ブール値 指定した文字列 (多くの場合、フィールド名) の CHAR が文字コードが数字の文字である場合に、真の値を返します。 それ以外の場合、この関数は 0 の値を返します。 例えば、isnumbercode(product_id(2))です。
isstartstring(SUBSTRING, STRING) 整数 文字列 STRING がサブ文字列 SUBSTRING で始まる場合、この関数は添え字 1を返します。 それ以外の場合、この関数は 0 の値を返します。
issubstring(SUBSTRING, N, STRING) 整数 文字列 SUBSTRINGと同じサブ文字列に、N番目の文字から始まる文字列 STRING 文字列を検索します。 文字列が見つかった場合、一致する部分文字列が始まる位置の添字 M (整数) を返します。 それ以外の場合、この関数は 0 の値を返します。 N が指定されない場合、この機能はデフォルトで 1になります。
issubstring(SUBSTRING, STRING) 整数 文字列 SUBSTRINGと同じサブ文字列に、N番目の文字から始まる文字列 STRING 文字列を検索します。 文字列が見つかった場合、一致する部分文字列が始まる位置の添字 M (整数) を返します。 それ以外の場合、この関数は 0 の値を返します。 N が指定されない場合、この機能はデフォルトで 1になります。
issubstring_count(SUBSTRING, N, STRING): 整数 指定された STRING 内の SUBSTRINGN番目の発生の索引を返します。 SUBSTRING の発生数が N より少ない場合は、0 を返します。
issubstring_lim(SUBSTRING, N, STARTLIM, ENDLIM, STRING) 整数 この関数は issubstring と同じですが、添字 STARTLIM から、またはその前から始まり、添字 ENDLIM で、またはその前で終わるように、マッチングが制限されます。 STARTLIM 制約または ENDLIM 制約は、いずれかの引数に偽 (false) の値を指定することによって無効にできます。例えば、issubstring_lim(SUBSTRING, N, false, false, STRING)issubstring と同じです。
isuppercode(CHAR) ブール値 CHAR が大文字の文字である場合に、真 (true) の値を返します。 それ以外の場合、この関数は 0 の値を返します。 例えば、isuppercode(``) isuppercode(country_name(2)) の両方が有効な式です。
last(CHAR) String STRING の最後の文字 CHAR を返します (これには、少なくとも 1 文字の長さが必要です)。
length(STRING) 整数 文字列 STRING の長さ (つまり文字列内の半角文字数) を返します。
locchar(CHAR, N, STRING) 整数 シンボル値フィールド中の文字の位置を識別するために用いられます。 この関数は、文字 CHAR の文字列 STRING を検索して、STRINGN 番目の文字から検索を開始します。 この関数は、文字が検出された場所 (N から始まる) を示す値を返します。 文字が検出されない場合、この関数は 0 の値を返します。 関数に無効なオフセット (N) (例えば、文字列の長さを超えるオフセット) がある場合、この関数は $null$ を返します。 例えば、 locchar(`n`, 2, web_page) は、 web_page というフィールドで、フィールド値の 2 番目の文字から始まる `n` 文字を検索します。 : 指定する文字を、忘れずに、単一逆引用符で囲むようにしてください。
locchar_back(CHAR, N, STRING) 整数 locchar に似ていますが、N 番目の文字から前方向に検索される点が異なります。 例えば、locchar_back(`n`, 9, web_page) と指定すると、フィールド web_page の 9 番目の文字から、文字列の先頭方向に向かって検索が開始されます。 関数のオフセットが無効な場合 (例えばオフセットが文字列の長さを超えているなど)、この関数は $null$ を返します。 できる限り、locchar_back を関数 length(<field>) とともに使用して、フィールドの現在の値の長さを動的に使用することをお勧めします。 例えば、locchar_back(`n`, (length(web_page)), web_page) です。
lowertoupper(CHAR) lowertoupper (STRING) CHAR または String 文字または文字列を入力にすることができ、同じデータ型の新しい項目を返すために用いられます。その際小文字はすべて同じ文字の大文字に変換されます。 例えば、lowertoupper(`a`)lowertoupper(“My string”)、および lowertoupper(field_name(2)) はすべて有効な式です。
matches ブール値 文字列が指定したパターンに一致する場合、真を返します。 パターンは文字列リテラルにする必要があり、パターンを含むフィールド名にしてはなりません。 クエスチョン・マーク (?) をパターンに含めて正確に 1 つの文字に一致させることができます。アスタリスク (*) は、0 個かそれ以上の文字に一致します。 リテラル・クエスチョン・マークまたはアスタリスクを(むしろ、ワイルドカードとして使用しないで)一致させるために、バックスラッシュをエスケープ文字として使用することができます。
replace(SUBSTRING, NEWSUBSTRING, STRING) String 指定された STRING 内で、SUBSTRING のすべてのインスタンスを NEWSUBSTRING に置き換えます。
replicate(COUNT, STRING) String 指定した回数だけコピーされた元の文字列を含む文字列を返します。
stripchar(CHAR,STRING) String 文字列またはフィールドから、指定した文字を削除します。 この関数を利用すれば、データから通貨表記などの余分な記号を削除して、単純な数字または名前を取得できます。 例えば、シンタックス stripchar(`$`, 'Cost') を使用すると、すべての値からドル記号を削除した新しいフィールドが返されます。 : 指定する文字を、忘れずに、単一逆引用符で囲むようにしてください。
skipchar(CHAR, N, STRING) 整数 文字列 STRINGCHAR 以外の文字を検索します。この文字は N 番目の文字から始まります。 この関数は、1 が検出されたポイントを示す整数のサブ文字列を返します。N 番目以降のすべての文字が CHARである場合は、0 が返されます。 関数のオフセットが無効な場合 (例えばオフセットが文字列の長さを超えているなど)、この関数は $null$ を返します。 locchar は、よく関数 skipchar と一緒に、N (文字列の検索開始点) の値を判断するために用いられます。 例えば、 skipchar(`s`, (locchar(`s`, 1, "MyString")), "MyString")などです。
skipchar_back(CHAR, N, STRING) 整数 skipcharと似ていますが、 N番目の文字から 逆方向に検索が実行される点が異なります。
startstring(LENGTH, STRING) String 指定された文字列から最初の N 文字を抽出します。 文字列の長さが指定した長さよりも短いか、またはそれに等しい場合は、変更されません。
strmember(CHAR, STRING) 整数 locchar(CHAR, 1, STRING) と同じです。 この関数は、CHAR が最初に発生する地点を示す整数のサブ文字列または 0 を返します。 関数のオフセットが無効な場合 (例えばオフセットが文字列の長さを超えているなど)、この関数は $null$ を返します。
subscrs(N, STRING) 文字 入力文字列 STRINGN 番目の文字 CHAR を返します。 この関数は、STRING(N) という短い形式で記述することもできます。 例えば、lowertoupper(“name”(1)) は有効な式です。
substring(N, LEN, STRING) String 添え字 N の文字で始まる文字列 STRINGLEN 文字で構成される文字列 SUBSTRING を返します。
substring_between(N1, N2, STRING) String 添え字 N1 で始まり、添え字 N2 で終わる STRING のサブ文字列を返します。
trim(STRING) String 指定した文字列から、文字列の前後の空白文字を削除します。
trim_start(STRING) String 指定した文字列から、文字列の前の空白文字を削除します。
trimend(STRING) String 指定した文字列から、文字列の後の空白文字を削除します。
unicode_char(NUM) 文字 16 進数値ではなく 10 進数を入力する必要があります。 Unicode 値が NUM の文字を返します。
unicode_value(CHAR) NUM CHAR の Unicode 値を返します。
uppertolower(CHAR) uppertolower (STRING) CHAR または String 文字または文字列を入力にすることができ、同じデータ型の新しい項目を返すために用いられます。その際、大文字はすべて同じ文字の小文字に変換されます。 : 文字列は二重引用符で、文字は単一の逆引用符で忘れずに指定するようにしてください。 単純なフィールド名の場合は、引用符は使用しません。