Power Automate, Logic Appsでメールの本文から何かを抽出したいときなど、とりあえず改行区切りで文字列を分割したくなります。
けど、標準のアクションにそんな都合の良いものはなく、組み込みの関数ではsplitがありはするものの、
区切り文字に \n を指定してもうまく文字列が分割されません。
split({動的なコンテンツ}, '\n' )
↑これではうまくいかない
split({動的なコンテンツ}, "\n")
↑これでは構文エラー
うまく改行で区切りたい場合は
splitでの区切り文字のところに、
改行コードをBase64でエンコードされたもの(Cg==)を、
decodeBase64でデコードして指定する事で、文字列を分割することができます。
split({動的なコンテンツ},decodeBase64('Cg=='))
↑これならうまくいく
サンプルとして、
マネックス証券の約定アラートメールで試してみます。
↓こんな文面
約定アラートメールです。
[銘柄]
三井造船(7003)
[注文内容]
日時 19日13:03
No. 1
売買 買い
区分 現物
価格 237円
株数 1,000株
[約定結果]
日時 19日13:03
価格 237円
株数 1,000株
金額 237,000円
詳細はWEBを
ご覧ください。
マネックス証券
http://www.monex.co.jp/
何もない行は飛ばされてしまいますが、
無事に改行で区切ってArrayに入れることができました。
追記
Twitterで別の方法を教えてもらいました。
decodeBase64ではなく、
decodeUriComponentを使えば、Cg== よりも覚えやすい、%0Aでできるよ!