Power Automate で文字列中央にある数値文字を抽出する
abcd123efgh
という文字列があったときに、中央にある連続する数値文字 123
を抽出したいケースを Power Automate で考えます。
前提
過去の記事の応用編になります。まずはこちらを参照してください。
検討事項
- 文字列の中から連続する文字を抽出したいので
substring
関数が使える - 数値文字の先頭インデックスと末尾インデックスが定まれば抽出可能
- 先頭インデックスの取り方は前提記事を参照
- 末尾インデックスの取り方は前提記事でやっていたことの逆バージョン
- つまり
indexOf
関数を使ってるところはlastIndexOf
関数を使い、最小値 を取得していたところは 最大値 を取得すればいい
作成した Power Automate
解説
過去記事の差分箇所を解説します。
選択アクションで数値文字の末尾インデックスを取得
既存の選択アクションをクリップボードにコピーして貼り付けます。(初めてクリップボード機能を使って感動した!)
indexOf
関数を使ってた箇所を lastIndexOf
関数に書き換えるだけ。
アレイのフィルター処理で lastIndexOf
関数の結果を絞り込み
これも既存のフィルターアクションをクリップボードにコピーして貼り付けてから、差出人
部分を上記の選択アクションの出力に書き換えます。
数値文字の末尾インデックスを取得
max
関数を用いて、フィルターした結果の配列の中から最大値を取りだします。
部分文字列を抽出
取得した数値文字の先頭インデックスと末尾インデックスを用いて、抽出する数値文字の長さを計算します。
末尾インデックスから先頭インデックスを減算した結果に 1
を足すことを忘れずに。
まとめ
Power Automate で文字列中央にある数値文字を抽出しました。
連続する数値文字であればどこでも抽出可能なので、過去記事の拡張版になります。