Microsoft Flow の文字列を置換するには replace 関数を使うのだが、replace 関数で改行文字(\n)を直接は扱えない。このため、改行を事前に文字列の変数にしておくとよい。
まずは、以下のように改行だけを入力した変数を作成する。
そのあと、以下のような式を使うと、改行を置換できる。 ※この場合は空文字で置換しているので、改行を除去した、'置換したい文字列'が出力になる。
replace("置換したい\n 文字列", variables("LF"), "");
上記にたどりつくまで
以下は備忘録。
エスケープすればいけるだろ、とやってみるが上手くいかない
#一般的なエスケープ replace('置換したい\n 文字列' ,'\n', '') #Powershell 風 replace('置換したい\n 文字列' ,'`n', '') #VBA 風 replace('置換したい\n 文字列' ,char(10), '')
uriComponent を利用した置換は冗長
軽くググると以下のようなページがヒットする。
uriComponent で\n
をパーセントエンコーディングしたあと置換する、という手法。
ただ、以下の引用のように式が長くなるし、やっていることが一目でわからなくなるのでやめた。
uriComponentToString(replace(uriComponent('置換したい\n 文字列'),'%0A',''))
視点を変えてググる
結局は置換から離れて、Flow で改行をどう扱うべきかを調べて、下記のページにたどり着く。 下記のページと同じようにいったん変数にして扱うことで解決を図った。