文字列内の置換に関する関数
一般的な文字列関数と 文字列内を検索する関数は別々に説明されています。
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
haystack
中の正規表現 pattern
に一致する部分文字列の最初の出現を replacement
文字列で置き換えます。
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文字目で置き換えられ、first
の2文字目の出現は to
の2文字目で置き換えられます。
from
に to
に対応する文字がない場合、from
の末尾にあるすべての出現は s
から削除されます。非ASCII文字は関数によって変更されません。
構文
例
結果:
from
と to
の引数の長さが異なる場合:
結果:
translateUTF8
translate と同様ですが、s
、from
、to
がUTF-8エンコードされた文字列であると仮定します。
構文
パラメーター
戻り値
- String 型の値。
例
クエリ:
printf
printf
関数は、引数にリストされた値(文字列、整数、浮動小数点数など)で指定された文字列をフォーマットします。これは C++ の printf 関数に似ています。フォーマット文字列には %
文字で始まるフォーマット指定子を含めることができます。%
とその後のフォーマット指定子に含まれないものは、リテラルテキストとして扱われ、出力にそのままコピーされます。リテラルの %
文字は %%
でエスケープできます。
構文
例
クエリ: