ChatGPT活用術 UiPath 応用・比較

UiPathで正規表現を使う方法|文字抽出とデータ加工の実践例

UiPathを使ってデータ抽出や文字列処理を自動化していると、
「特定の数字だけ抜き出したい」「メール本文から日付や金額を取りたい」といった場面が頻繁にあります。

このようなときに強力な武器となるのが 正規表現(Regular Expression / Regex) です。
ただし、記号が多くて一見難しそうに見えるため、苦手意識を持つ方も少なくありません。

この記事では、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}

・処理手順

  1. 「Read Range」でExcelをDataTableに格納
  2. 「For Each Row」で各行を処理
  3. 「Assign」で以下を実行
    row("電話番号") = System.Text.RegularExpressions.Regex.Match(row("住所").ToString, "\d{2,4}-\d{2,4}-\d{4}").Value
    
  4. 新しい列「電話番号」に結果が出力されます。

このように、正規表現を使えば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連携による効率化にも挑戦してみると良いでしょう。

-ChatGPT活用術, UiPath, 応用・比較