replace (text; search string; replacement string)

replace()は、1つ目の引数に検索対象のテキスト、2つ目に検索する文字列を入れ、3つ目の引数に置換後の文字列をとります。

検索する文字列には「/」で囲むことで正規表現を使うこともでき、検索を最初だけではなく最後まで繰り返す「g」や大文字・小文字を区別しない「i」などの正規表現フラグも使用可能です。

また、置換後の文字列に「$&」を使うことでマッチした文字列を再度参照したり、「$1」のように「$」の後に数字を置くことで、括弧で囲った文字列の内、その数字番目に当たる文字列を参照することもできます。

// Sample
replace(Hello World; Hello; Hi)
> Hi World
// 「Hello World」の「Hello」が「Hi」に置き換わるので、「Hi World」が返されます

replace(All these numbers 187 23 1 9565 will be replaced with X; /\d+/g); X)
> All these numbers X X X X will be replaced with X
// 「\d」は任意の数字を、「+」は前の文字の1文字以上の連続を表し、フラグ「g」が検索を最初だけではなく最後まで繰り返すことを表すので、187, 23, 1, 9565のそれぞれが「X」に置き換わります

replace(Phone number is 777111222; /\d+/; +420$&)
> Phone number is +420777111222
// 同様に「\d+」は任意の桁の連続する数字を表し、「+420」の後にそれを参照しております

replace(Phone number is 777111222; /is (\d+)/; : +420$1)
> Phone number: +420777111222
// 「is 」の後に「\d+」が括弧でくくられており、くくられているところのみが、後続の「$1」で参照されているため、「: +420」の後に、先程の括弧内の数字が現れています

実例を見てみましょう。

JSONを変換[6]

「Parse JSON」モジュールは、JSON stringを、Integromatが扱いやすいように変換してくれます。

「Row Number」という数値と「Sample String」というテキストからなるオブジェクトを要素とした配列である「Sample Strings」 の形式に、IntegromatのWebサイトからコピペした文言を入れています。

Iterator[8]

[6]で出力される文章は、それぞれの文を要素とした配列であり、それら一つずつに対して後続の処理を行うために、Iteratorを使います。

Router[14]

今回は、検索する文字列にテキストのみを使う場合と、正規表現を使う場合のそれぞれを試すために、Routerで分岐させています。

変数を定義(テキスト)[13]

[8]で出力された文のそれぞれについて、「Integromat」というテキストを「Zapier」に置換しています。

実行結果を見ると、オペレーション2では置換され、それ以外では何も置換されていないことが分かります。

変数を定義(正規表現)[15]

[8]で出力された文のそれぞれについて、小文字の母音(a, e, i, o, u)の全てを大文字の「X」に置き換えています。

実行結果を見ると、それぞれの小文字の母音が、「X」に置き換えられていることが分かります。

以上、replace ()と正規表現で任意のテキストを置換する方法についての説明でした。