PowerPlatForm_DX

PowerPlatFormの解説ブログ

【PowerApps初心者向け解説】IsMatch の使い方を実例を交えて解説

IsMatch関数は、指定された文字列が正規表現パターンと一致するかどうかを判断するために使用されます。これにより、入力されたデータの形式を検証したり、条件に合わないデータを排除したりできます。

 

目次

 

【基本構文】

 

IsMatch(文字列, 正規表現パターン)


・文字列:対象となる文字列。
正規表現パターン:検証に使用する正規表現パターン。

【実例1 : 数字が含まれているかチェック】

 

IsMatch("abc123", "\d+") // 結果: true


この例では、文字列 "abc123" がパターン "\d+" に一致するかどうかを検証しています。パターン "\d+" は、1つ以上の数字に一致するため、文字列 "abc123" には数字が含まれているため、結果は true になります。
・"abc123" は数字を含んでいるため、パターン "\d+" に一致する。
・よって、結果は true。

【実例2 : 数字が含まれているかチェック2】

 

IsMatch("abc", "\d+") // 結果: false


この例では、文字列 "abc" がパターン "\d+" に一致するかどうかを検証しています。パターン "\d+" は、1つ以上の数字に一致するため、文字列 "abc" には数字が含まれていないため、結果は false になります。
・"abc" は数字を含んでいないため、パターン "\d+" に一致しない。
・よって、結果は false。

【実例3 : メールアドレスの形式に合致しているかチェック】

 

IsMatch("example@example.com", "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$") // 結果: true


この例では、文字列 "example@example.com" がメールアドレスの形式に合致しているかどうかを検証しています。パターン "^\w+@[a-zA-Z_]+?.[a-zA-Z]{2,3}$" は、メールアドレスの形式に一致するため、文字列 "example@example.com" にも一致するため、結果は true になります。
・"example@example.com" はメールアドレスの形式に合致する。
・よって、結果は true。

【実例4 : フォームの入力チェック】


IsMatch関数はフォームの入力チェックにも利用できます。例えば、電話番号が正しいフォーマットで入力されたかどうかをチェックすることができます。
以下は、電話番号が「XXX-XXXX-XXXX」のフォーマットで入力されているかどうかをチェックする式です。

IsMatch(txtPhone.Text, "\d{3}-\d{4}-\d{4}")


この式は、テキストボックス(txtPhone)の値が「\d{3}-\d{4}-\d{4}」の正規表現にマッチするかどうかを判定します。正規表現「\d{3}-\d{4}-\d{4}」は、3桁の数字、ハイフン、4桁の数字、ハイフン、4桁の数字というパターンを表します。

【応用実例5 : パスワードの強度チェック】


パスワードの強度をチェックするためにも、IsMatch関数を利用することができます。以下は、パスワードが8文字以上かつ、英字と数字をそれぞれ1文字以上含んでいるかどうかをチェックする式です。

IsMatch(txtPassword.Text, "^(?=.*?[a-zA-Z])(?=.*?\d)[a-zA-Z\d]{8,}$")


この式は、テキストボックス(txtPassword)の値が正規表現「^(?=.?[a-zA-Z])(?=.?\d)[a-zA-Z\d]{8,}$」にマッチするかどうかを判定します。正規表現「^(?=.?[a-zA-Z])(?=.?\d)[a-zA-Z\d]{8,}$」は、以下の意味を持ちます。
^: 文字列の先頭を表す
(?=.*?[a-zA-Z]): 英字が1文字以上含まれていることを表す
(?=.*?\d): 数字が1文字以上含まれていることを表す
[a-zA-Z\d]{8,}: 英字と数字の組み合わせで8文字以上の文字列を表す
$: 文字列の末尾を表す
つまり、この式は、パスワードが英字と数字をそれぞれ1文字以上含んでいて、8文字以上である場合にマッチすることになります。

【まとめ】


IsMatch関数は、指定されたテキストが正規表現パターンに一致するかどうかを判定する関数です。正規表現を利用することで、より複雑なパターンのマッチングが可能となります。また、CaseSensitiveオプションを利用することで、大文字小文字の区別をするかどうかを設定することができます。
正規表現については、初めて触る人にとっては少し難しいかもしれませんが、使いこなすことで非常に強力な機能を持った関数です。特に、データのバリデーションや、特定のパターンを含むデータを検索する際に有用です。正規表現の学習にも役立つので、ぜひ使いこなしていきましょう。