はじめに
Teamsのメッセージ本文に含まれているaタグのURL部分のみを
Power AutomateのIndexOf関数とSubString関数を用いて
抽出する方法をご紹介いたします。
※あくまで一例です、もっと良いやり方があるかもしれません…!
実施内容
変数の用意
以下の4つの変数を用意します。
・開始位置:Integer型
・終了位置:Integer型
・差:Integer型
・Aタグ:String型
関数の設定
用意した4つの変数のValueに関数を設定します。
開始位置:Integer型
add(indexOf(items('aタグ'),'href="'),6)
終了位置:Integer型
indexOf(items('aタグ'),'" rel=')
差:Integer型
sub(variables('終了位置'),variables('開始位置'))
Aタグ:String型
substring(items('aタグ'),variables('開始位置'),variables('差'))
※関数の役割の説明
メッセージ内のaタグは以下のように記載されています。
<a href="URL" rel="noopener noreferrer">URL/表示するテキスト</a>
そのため、
開始位置の関数で「href=" https://~ 」の6文字目の文字列、つまりhttpsのhの位置を特定します。
次に終了位置の関数で「rel=」が書かれている箇所、つまりアドレス部分の最後の文字の位置を特定します。
そして差の関数を使って、終了位置 - 開始位置 でURLの長さを取得し、
Aタグの関数で開始位置からURLの長さ分、文字列を抽出します。
さいごに
aタグが複数含まれているケースはループ文を使って処理する必要があります。
そのやり方については以下に記載しておりますので、よろしければご一読ください~。