UiPathを使ってデータ抽出や文字列処理を自動化していると、
「特定の数字だけ抜き出したい」「メール本文から日付や金額を取りたい」といった場面が頻繁にあります。
このようなときに強力な武器となるのが 正規表現(Regular Expression / Regex) です。
ただし、記号が多くて一見難しそうに見えるため、苦手意識を持つ方も少なくありません。
この記事では、UiPathにおける正規表現の使い方を基礎から解説し、実務に役立つ抽出・加工例までを丁寧に紹介します。
目次
- ✅ UiPathで正規表現を使うメリットとは?
- ・条件一致を一瞬で判定できる
- ・Excelやメール本文の処理に最適
- ✅ UiPathで正規表現を使う主な方法
- ・① Matches アクティビティ
- ・② Is Match アクティビティ
- ・③ Replace アクティビティ
- ・④ .NETのRegexクラスを使う方法
- ✅ 正規表現の基本構文とよく使うパターン
- ・数字・文字・空白などの指定
- ・繰り返しや位置の指定
- ・グループ化とキャプチャ
- ✅ 実践例①:メール本文から日付と金額を抽出
- ・日付を抽出する
- ・金額を抽出する
- ✅ 実践例②:Excelデータの整形に活用
- ・Regexパターン
- ・処理手順
- ✅ 実践例③:OCRやPDFからのデータ抽出
- ・郵便番号の抽出
- ・日付と金額を同時に抽出
- ✅ 正規表現を使う際の注意点と安定化のコツ
- ・全角・半角の違いに注意
- ・改行を含む場合の対処
- ・Regex101でテストする
- ✅ まとめ:正規表現を使えばUiPathの文字処理は飛躍的に進化する
✅ UiPathで正規表現を使うメリットとは?
・条件一致を一瞬で判定できる
通常の「Contains」や「Split」では、完全一致や単純な区切りにしか対応できません。
一方、正規表現を使えば「パターンに一致する文字」を柔軟に抽出できます。
例えば:
- 「請求書番号:12345」から数字だけを取りたい
- 「2025年10月19日」から日付を検出したい
- 「電話:03-1234-5678」から電話番号形式を確認したい
これらを1行で判定できるのが正規表現の最大の強みです。
・Excelやメール本文の処理に最適
UiPathで扱うデータは多くが「テキスト」です。
正規表現を活用すれば、Excel・PDF・メール本文などの構造化されていないデータを整形・抽出できます。
たとえば、OCRで取得した文字列から郵便番号だけを抜き出す、といった高度な処理も可能です。
参考:【RPA入門】UiPathでできること一覧|Excel・メール・ブラウザ操作を徹底解説
✅ UiPathで正規表現を使う主な方法
UiPathでは、正規表現を扱う方法が複数あります。
用途や規模に応じて使い分けることで、よりスマートな自動化を実現できます。
・① Matches アクティビティ
最も一般的なのが「Matches」アクティビティです。
指定したパターンに一致するすべての部分文字列を**コレクション(IEnumerable)**として取得できます。
設定例:
- Input:対象文字列
- Pattern:正規表現パターン
- Result:抽出結果(変数)
例:
請求書データから金額を抽出する場合:
Input: "請求金額:12,345円(税込)"
Pattern: "\d{1,3}(,\d{3})*"
結果: "12,345"
Matchesを使えば、複数一致も自動的にすべて抽出してくれます。
・② Is Match アクティビティ
文字列が指定したパターンに一致するかどうかを判定します。
条件分岐(If)で使用するケースが多く、「入力値の形式チェック」に最適です。
例:メールアドレス形式の確認
Pattern: "^[\w\.-]+@[\w\.-]+\.\w+$"
入力文字列がこの形式に一致する場合、Trueが返ります。
・③ Replace アクティビティ
正規表現を使って、文字列の一部を置き換えることができます。
「住所データから郵便番号だけ削除」「不要な空白を除去」といった整形に便利です。
例:
Pattern: "\s+"(1つ以上の空白)
Replacement: ""
このように設定すれば、文章中の余分な空白をすべて除去できます。
・④ .NETのRegexクラスを使う方法
UiPathは.NET Framework上で動作しているため、
VB.NETの「System.Text.RegularExpressions.Regex」クラスを直接使用することも可能です。
System.Text.RegularExpressions.Regex.Match(inputString, pattern).Value
この方法は、アクティビティを使わず1行で抽出できるため、
変数処理が多いワークフローでは特に重宝します。
✅ 正規表現の基本構文とよく使うパターン
・数字・文字・空白などの指定
構文 | 意味 | 例 |
---|---|---|
\d | 数字(0〜9) | \d{3} → 3桁の数字 |
\w | 英数字またはアンダースコア | \w+ → 単語 |
\s | 空白文字(スペースやタブ) | \s+ → 連続する空白 |
. | 任意の1文字 | A.B → “AとBの間に何か1文字” |
・繰り返しや位置の指定
構文 | 意味 | 例 |
---|---|---|
* | 0回以上の繰り返し | \d* |
+ | 1回以上の繰り返し | \w+ |
{n,m} | n〜m回の繰り返し | \d{2,4} |
^ | 行頭を指定 | ^abc → 行頭がabc |
$ | 行末を指定 | abc$ → 行末がabc |
・グループ化とキャプチャ
丸括弧 ( )
を使うと、抽出対象をグループとして指定できます。
たとえば、年月日のみを取り出す場合:
Pattern:(\d{4})年(\d{1,2})月(\d{1,2})日
Match.Groups(1).Value
で「年」だけを取り出すことも可能です。
✅ 実践例①:メール本文から日付と金額を抽出
たとえば、以下のようなメール本文を想定します:
お世話になっております。
10月19日にご請求いたしました金額は、¥45,600(税込)です。
入金期日は2025年10月31日となります。
・日付を抽出する
Pattern: \d{4}年\d{1,2}月\d{1,2}日
結果: "2025年10月31日"
または西暦が含まれない場合:
Pattern: \d{1,2}月\d{1,2}日
結果: "10月19日"
・金額を抽出する
Pattern: ¥?\d{1,3}(,\d{3})*
結果: "¥45,600"
これらを「Matches」アクティビティで取得すれば、複数の値も同時に抽出可能です。
さらに「Assign」アクティビティで .Value
を使えば、個別の変数に格納できます。
参考:【UiPath】Outlookメールを仕分け&保存する方法|業務効率化に直結するRPA活用術
✅ 実践例②:Excelデータの整形に活用
例えば、以下のようなExcelデータをUiPathで読み取ったとします。
顧客名 | 住所 |
---|---|
田中太郎 | 東京都港区南青山1-2-3 TEL:03-1234-5678 |
鈴木花子 | 大阪府大阪市北区梅田1-1-1 TEL:06-9876-5432 |
ここから電話番号だけを抜き出したい場合、次のようにします。
・Regexパターン
Pattern: \d{2,4}-\d{2,4}-\d{4}
・処理手順
- 「Read Range」でExcelをDataTableに格納
- 「For Each Row」で各行を処理
- 「Assign」で以下を実行
row("電話番号") = System.Text.RegularExpressions.Regex.Match(row("住所").ToString, "\d{2,4}-\d{2,4}-\d{4}").Value
- 新しい列「電話番号」に結果が出力されます。
このように、正規表現を使えば1列に複数データが混在している場合の抽出・整理が容易に行えます。
✅ 実践例③:OCRやPDFからのデータ抽出
OCR処理でテキスト化したPDFなどでは、フォーマットが崩れていることが多く、単純な文字列処理では精度が出ません。
そこで役立つのが正規表現です。
・郵便番号の抽出
Pattern: \d{3}-\d{4}
結果: "123-4567"
・日付と金額を同時に抽出
Pattern: (\d{4}/\d{1,2}/\d{1,2}).*?(\d{1,3}(,\d{3})*)
「日付」と「金額」を一度に取得できるようになります。
複雑な請求書や明細書の抽出でも活躍するテクニックです。
✅ 正規表現を使う際の注意点と安定化のコツ
・全角・半角の違いに注意
日本語データでは、数字や記号が全角になっているケースがあります。
この場合、\d
は半角数字にしか反応しないため、次のように指定します。
Pattern: [0-90-9]
両方の数字を対象にすることで、抽出漏れを防げます。
・改行を含む場合の対処
複数行にわたるテキストでは、「.」が改行にマッチしない点に注意。
オプション RegexOptions.Singleline
を指定すると、改行も含めて抽出できます。
UiPath上では、パターンの前に (?s)
を付けるだけでOKです。
Pattern: (?s)請求.*金額
・Regex101でテストする
正規表現は、少しの記号の違いで結果が変わります。
開発前に「regex101.com」などのテストサイトで動作確認しておくと効率的です。
✅ まとめ:正規表現を使えばUiPathの文字処理は飛躍的に進化する
- 正規表現は「パターン一致」でデータを抽出・変換できる強力なツール
- UiPathでは「Matches」「Is Match」「Replace」「Regex.Match」など多様な方法で利用可能
- メールやPDF、Excelなどの非構造データ処理に特に有効
- 実務では、金額・日付・電話番号・郵便番号などの抽出に最適
- 全角対応や改行オプションなどを理解しておくと、より安定した処理が可能
正規表現を使いこなせば、UiPathによる自動化の幅が格段に広がります。
単純な条件分岐を超えて、「人が目で見て判断していた文字処理」を自動化できるようになるのです。
次のステップとして、「Regex.Replaceを使ったデータ整形」や「ChatGPTで正規表現を自動生成させる」など、
AI連携による効率化にも挑戦してみると良いでしょう。