文字列の置換に関する関数
一般的な文字列関数と文字列内の検索関数は別々に説明されています。
overlay
文字列 input の一部を別の文字列 replace で置換します。置換は1から始まるインデックス offset から行います。
構文
パラメータ
s: 文字列型 String。replace: 文字列型 String。offset: 整数型 Int (1から始まる)。もしoffsetが負の場合、文字列sの末尾から数えます。length: 任意。整数型 Int。lengthは、入力文字列s内で置換されるスニペットの長さを指定します。lengthが指定されていない場合、sから削除されるバイト数はreplaceの長さに等しくなり、それ以外の場合はlengthバイトが削除されます。
返される値
- String データ型の値。
例
結果:
結果:
overlayUTF8
文字列 input の一部を別の文字列 replace で置換します。置換は1から始まるインデックス offset から行います。
文字列が有効なUTF-8エンコードされたテキストであると仮定します。この仮定が破られた場合、例外はスローされず、結果は未定義です。
構文
パラメータ
s: 文字列型 String。replace: 文字列型 String。offset: 整数型 Int (1から始まる)。もしoffsetが負の場合、入力文字列sの末尾から数えます。length: 任意。整数型 Int。lengthは、入力文字列s内で置換されるスニペットの長さを指定します。lengthが指定されていない場合、sから削除される文字数はreplaceの長さに等しくなり、それ以外の場合はlength文字が削除されます。
返される値
- String データ型の値。
例
結果:
replaceOne
文字列 haystack の中の部分文字列 pattern の最初の出現を replacement 文字列で置き換えます。
構文
replaceAll
文字列 haystack の中の部分文字列 pattern のすべての出現を replacement 文字列で置き換えます。
構文
エイリアス: replace。
replaceRegexpOne
正規表現 pattern に一致する部分文字列の最初の出現を replacement 文字列で置き換えます(re2構文に従う)。
replacement には \0-\9 の置換が含まれます。
置換 \1-\9 は1番目から9番目のキャプチャグループ(サブマッチ)に対応し、置換 \0 は全体の一致に対応します。
pattern または replacement 文字列内でそのままの \ 文字を使用するには、エスケープする必要があります。
また、文字列リテラルでは追加のエスケープが必要であることに注意してください。
構文
例
ISO日付をアメリカ形式に変換:
結果:
文字列を10回コピー:
結果:
replaceRegexpAll
replaceRegexpOne と同様ですが、パターンのすべての出現を置き換えます。
エイリアス: REGEXP_REPLACE。
例
結果:
例外として、正規表現が空の部分文字列に作用した場合、置換は一度だけ行われます。例:
結果:
regexpQuoteMeta
正規表現で特別な意味を持つこれらの文字の前にバックスラッシュを追加します: \0, \\, |, (, ), ^, $, ., [, ], ?, *, +, {, :, -。
この実装は re2::RE2::QuoteMeta とは若干異なります。ゼロバイトを \0 としてエスケープし、必要な文字のみをエスケープします。
詳細については、RE2を参照してください。
構文
format
pattern 文字列を、引数にリストされている値(文字列、整数など)でフォーマットします。Pythonでのフォーマットに似ています。パターン文字列には、中括弧 {} に囲まれた置換フィールドを含めることができます。中括弧に含まれていないものはリテラルテキストと見なされ、そのまま出力にコピーされます。リテラルの中括弧文字は、二重中括弧でエスケープできます: {{ '{{' }} および {{ '}}' }}。フィールド名は数字(ゼロから始まる)または空であり(その場合、省略されると単調に増加する数字が与えられます)。
構文
例
暗黙の数字の場合:
translate
文字列 s 内の文字を、文字列 from と to で定義された1対1の文字マッピングを使用して置き換えます。
from と to は定数ASCII文字列でなければなりません。
from と to のサイズが等しい場合、s 内の first の1番目の文字の各出現は to の1番目の文字に置き換えられ、s 内の first の2番目の文字は to の2番目の文字に置き換えられます。
from に to よりも多くの文字が含まれている場合、to に対応する文字がない from の末尾の文字のすべての出現が s から削除されます。
s 内の非ASCII文字はこの関数で変更されません。
構文
例
結果:
from と to の引数の長さが異なる場合:
結果:
translateUTF8
translate と同様ですが、s、from および to はUTF-8エンコードされた文字列であると仮定します。
構文
パラメータ
返される値
- String データ型の値。
例
クエリ:
printf
printf 関数は、C++のprintf関数に似た形で、引数にリストされている値(文字列、整数、浮動小数点数など)で指定された文字列をフォーマットします。フォーマット文字列は % 文字で始まるフォーマット指定子を含むことができます。 % とその後のフォーマット指定子に含まれないものはリテラルテキストと見なされ、そのまま出力にコピーされます。リテラルの % 文字は %% でエスケープできます。
構文
例
クエリ: