文字列置換用の関数
一般的な文字列関数および文字列検索用の関数については別途説明されています。
以下のドキュメントは、system.functions システムテーブルから生成されたものです。
format
導入バージョン: v20.1.0
pattern 文字列を、引数として渡された値 (文字列、整数など) でフォーマットします。Python におけるフォーマットと同様の動作です。
パターン文字列内には、波括弧 {} で囲まれた置換フィールドを含めることができます。
波括弧で囲まれていない部分はリテラル文字列とみなされ、そのまま出力にコピーされます。
リテラルな波括弧文字は、{{ および }} を 2 つ続けて書くことでエスケープできます。
フィールド名には (0 から始まる) 数値を指定するか、空にすることができ、空の場合は単調増加する数値が暗黙的に割り当てられます。
構文
引数
戻り値
フォーマット済みの文字列を返します。String
使用例
番号付きプレースホルダー
暗黙的な番号付け
overlay
導入バージョン: v24.9.0
1始まりのインデックス offset から、文字列 input の一部を別の文字列 replace で置き換えます。
構文
引数
s— 入力文字列。Stringreplace— 置換文字列。const Stringoffset— 整数型Int(1 始まりのインデックス) 。offsetが負の場合は、文字列sの末尾から数えます。Intlength— 省略可能な整数型Int。lengthは、入力文字列s内で置き換える部分文字列の長さを指定します。lengthが指定されていない場合、sから削除されるバイト数はreplaceの長さと同じになり、指定されている場合はlengthバイトが削除されます。Int
戻り値
置換後の文字列を返します。String
使用例
基本的な置換
長さ指定付きの置換
overlayUTF8
導入バージョン: v24.9.0
文字列 s の一部を、1 始まりのインデックス offset で指定した位置から、別の文字列 replace で置き換えます。
文字列に有効な UTF-8 でエンコードされたテキストが含まれていることを前提とします。
この前提が満たされない場合でも、例外はスローされず、結果は未定義となります。
構文
引数
s— 入力文字列。Stringreplace— 置換に用いる文字列。const Stringoffset— 整数型Int(1 始まりのインデックス) 。offsetが負の場合は、入力文字列sの末尾から数えます。(U)Int*length— 省略可能。入力文字列sの中で置換対象となる部分文字列の長さを指定します。lengthが指定されていない場合、sから削除される文字数はreplaceの長さと等しくなり、指定されている場合はlength文字が削除されます。(U)Int*
戻り値
置換後の文字列を返します。String
例
UTF-8 の置換
printf
導入バージョン: v24.8.0
printf 関数は、C++ の printf 関数と同様に、指定されたフォーマット文字列に引数として渡された値 (文字列、整数、浮動小数点数など) を埋め込んで整形します。
フォーマット文字列には、% 文字で始まる書式指定子を含めることができます。
% とその後に続く書式指定子に含まれない部分はリテラルテキストと見なされ、そのまま出力にコピーされます。
リテラルとしての % 文字は %% でエスケープできます。
構文
引数
返される値
フォーマット済みの文字列を返します。String
例
C++ スタイルのフォーマット
regexpQuoteMeta
導入されたバージョン: v20.1.0
正規表現において特別な意味を持つ次の文字の前にバックスラッシュを追加します: \0, \\, |, (, ), ^, $, ., [, ], ?, *, +, {, :, -。
この実装は re2::RE2::QuoteMeta とはわずかに異なります。
ヌルバイトを \x00 ではなく \0 としてエスケープし、必要な文字だけをエスケープします。
構文
引数
s— 正規表現でエスケープする必要がある文字を含む入力文字列。String
戻り値
正規表現の特殊文字をエスケープした文字列を返します。String
例
正規表現の特殊文字をエスケープする
replaceAll
導入バージョン: v1.1.0
文字列 haystack に含まれる部分文字列 pattern のすべての出現箇所を、文字列 replacement で置き換えます。
構文
別名: replace
引数
haystack— 検索対象となる入力文字列。Stringpattern— 検索して置き換える部分文字列。const Stringreplacement—patternを置き換える文字列。const String
戻り値
pattern のすべての出現箇所が置き換えられた文字列を返します。String
例
すべての出現箇所を置換
replaceOne
導入バージョン: v1.1.0
haystack 内で最初に見つかった部分文字列 pattern を、文字列 replacement に置き換えます。
構文
引数
haystack— 検索対象となる入力文字列。Stringpattern— 検索して置換する部分文字列。const Stringreplacement—patternを置き換える文字列。const String
戻り値
pattern が最初に出現した箇所のみを置換した文字列を返します。String
例
最初の出現箇所のみを置換
replaceRegexpAll
導入バージョン: v1.1.0
replaceRegexpOne に似ていますが、パターンに一致したすべての箇所を置換します。
ただし例外として、正規表現が空の部分文字列にマッチした場合、その置換は一度しか行われません。
構文
別名: REGEXP_REPLACE
引数
haystack— 検索対象の入力文字列。Stringpattern— 検索する正規表現パターン。const Stringreplacement— パターンを置換する文字列。サブスティテューション (後方参照など) を含めることができます。const String
戻り値
正規表現にマッチしたすべての部分を置換した文字列を返します。String
例
すべての文字を2回繰り返した文字に置換する
空文字列の置換例
replaceRegexpOne
導入バージョン: v1.1.0
haystack 内で、正規表現 pattern (re2 構文) にマッチする最初の部分文字列を、文字列 replacement で置き換えます。
replacement には置換シーケンス \0-\9 を含めることができます。
置換シーケンス \1-\9 は第 1〜第 9 キャプチャグループ (サブマッチ) に対応し、置換シーケンス \0 はマッチした全体の文字列に対応します。
pattern または replacement 文字列中でリテラルの \ 文字を使用するには、\ を使ってエスケープしてください。
また、文字列リテラルでは、さらにエスケープが必要になる場合があることにも注意してください。
構文
引数
haystack— 検索対象となる入力文字列。Stringpattern— 検索する正規表現パターン。const Stringreplacement— パターンを置き換える文字列。後方参照による置換を含めることができます。const String
返される値
最初にマッチした正規表現部分を置き換えた文字列を返します。String
例
ISO 日付をアメリカ形式に変換する
文字列を 10 回コピーする
translate
導入バージョン: v22.7.0
文字列 s 内の文字を、from と to 文字列で定義される一対一の文字マッピングを使って置換します。
from と to は定数のASCII文字列でなければなりません。
from と to の長さが同じ場合、s 内に現れる from の1文字目は to の1文字目に、from の2文字目は to の2文字目に、というように順に置換されます。
from に含まれる文字数が to より多い場合、to 側に対応する文字が存在しない from 末尾側の文字は、s からすべて削除されます。
s 内の非ASCII文字は、この関数によって変更されません。
構文
引数
s— 変換対象となる入力文字列。Stringfrom— 置換対象の文字を含む定数 ASCII 文字列。const Stringto— 置換後の文字を含む定数 ASCII 文字列。const String
返り値
指定した文字置換を適用した文字列を返します。String
例
文字マッピング
長さが異なる場合
translateUTF8
導入バージョン: v22.7.0
translate と同様ですが、s、from、to が UTF-8 エンコードされた文字列であると仮定します。
構文
引数
s— 文字置換の対象となる UTF-8 入力文字列。Stringfrom— 置換対象の文字を含む定数 UTF-8 文字列。const Stringto— 置換後の文字を含む定数 UTF-8 文字列。const String
戻り値
String データ型の値を返します。String
例
UTF-8 文字の置換