Power Automateを利用していると、取得したデータ(テキスト)の中に、指定の文字列があるかなないか判断したい時があります。そんなときは、「テキストの解析」のアクションを利用します。
検索する文字列は、変数でも出来ますし、固定の文字列でも出来ます。
便利なのが、正規表現を利用した文字列の検索もできます。
順に追ってご説明します。
Power Automate for Desktopフローを作成方法
「テキストの解析」のアクションを選択し、ドラッグ&ドロップします。
「テキストの解析」で文字列を検索する
テキスト内に文字があるかないか?のアクションはないので、
「テキストの解析」で文字列を検索し、検索する文字列があれば、Returnに何番目に存在するかというところを利用します。検索する文字列がなければ、-1となります。1番目にあれば、0になります。
「テキストの解析」には、下記の設定値があります。
① 解析するテキスト ・・・ 大元のテキストになります。通常、変数(%Base%)を指定します。
② 検索するテキスト ・・・ 検索したいテキストや変数(%Keyword%)を指定します、
③ 正規表現である ・・・ 「検索するテキスト」に正規表現が利用できるようになります。
④ 解析の開始位置 ・・・ 0が「解析するテキスト」の1番目になります。
⑤ 生成された変数 ・・・ 実行した結果が入ります。検索するテキストがなければ-1となり、あれば、何番目かの数字が入ります。
<結果>
「検索するテキスト」は「Yahoo」で1番目です。実行すると、0と生成された変数のPositionに入ってきます。「Yaooo」で実行すると、その文字列は存在しませんのでPositionには-1が入ります。
文字列があるかないかの判断をする。
上記の「テキストの解析」を利用して、If文で判別することで、Keywordがあるかないかを判断します。
正規表現で検索キーワードを複数指定(OR)したり、AND条件したりする
検索するテキスト(検索キーワード)複数指定する場合、ORの要素を使いたい場合、正規表現では、パイプ(|)を利用します。下記のように指定します。
OR要素のパイプ(|)を利用した場合、下記のように複数ヒットします。
その場合、「最初の出現箇所のみ」をOFFにすることで、それぞれヒットした場所を配列で返します。
AND要素を使いたい場合。
下記のように設定します。
[キーワード1].*[キーワード2]
今回の場合、まず「日本」という文字列があって、何文字か後に「Yahoo」という文字列があるかという正規表現の記述方法になります。
その他の正規表現の方法
ORとANDを合わせて、下記のように記述できます。
([キーワード1]|[キーワード2]).*([キーワード3]|[キーワード4]|[キーワード5])
キーワードは、普通べた書きはせず、変数だと思いますので、下記のように記載します。
(%Var1%|%Var2%).*(%Var3%|%Var4%|%Var5%)
郵便番号があるかどうかは、下記になります。
[0-9]{3}-[0-9]{4}
・・・ [0-9]は0~9の数字、{3}は直前の文字(数字)が3回連続する、そのあとにハイフンがあり、数字が4つ続くということになります。
携帯番号は下記のように表現されるかもしれません。
0[789]0-[0-9]{4}-[0-9]{4}
正規表現では、^は行頭、$ は行末にマッチしているかどうかに利用します。
正規表現についてはこちらでも学べます。
コメント