RPA(Robotic Process Automation)をコア技術としたBizRobo!に関する技術記事です。
BizRobo!では、文字列から「正規表現」により特定文字を抽出する機能を覚えることにより
ロボットが効率的に構築できます。
今回は、よく使われる「正規表現」をまとめて紹介します。
※このページの内容はBizRobo! Design Studio 10.4.0.1で確認しています。
作成するロボット
ロボット作業概要
1.テキストに貼り付けた連絡先から、Excelにそれぞれの連絡先項目を正規表現により値をExcelに抽出します。
2.ファイルパスから、日付の入力がある場合は日付を除いた「ファイル名」を抽出します。
作成するロボットの全体像
上のフローにてテキストの連絡先をExcelに抽出を行い、下のフローにてファイルパスから「ファイル名」を抽出します。
typeの作成
下図の様にtypeを作成を行い、ロボットに変数設定を行いグローバルに設定します。
テキストの連絡先をExcelに抽出する。
新規Excelの作成と項目設定
変数にシンプルタイプのexcelを追加を行い、アクションステップを追加し「変数を開く」を選択し変数にexcel及び、クローバルに設定します。
ExcelのA1セルにカーソルを置き右クリックにより、セルのコンテンツ設定を選択し「郵便番号」を入力を行い同様に、同様に同様にA2~A7に「住所」「会社名」「電話番号」「携帯電話」「FAX」「メールアドレス」を設定し、最後に「Excel設定」名にグループ化を行います。
テキストファイルの読込
下記「送信者.txt」を任意のフォルダにダウンロード後にアクションステップを追加し「ファイルの読込」を選択し、ファイル名に「送信者.txt」のファイルパスを設定します。
プレビュー画面の下部のアクション選択⇒ソース抽出⇒test.TextFileを選択し、「Extract Text File」を追加後にアクションステップを追加を行い「部分文字列繰り返し」を選択し「入力値」「デリミタ」」「出力値」を下図の通りに設定します。
郵便番号・住所・会社名の抽出
各項目ともトライステップを追加後にアクションステップ「変数の割当」を選択を行い、図の通りに「変数を設定」「スペース除去」「高度な抽出」を追加設定後に、エラー処理は「次の代替手段を試行」に設定します。
①郵便番号の抽出
※パターン「(〒|)(\d{3}(-|)\d{4})(.*)」の説明
(〒|)⇒「〒」または空白 (\d{3}⇒3桁の任意の数字 (-|)⇒「-」または¥空白 \d{4})⇒4桁の任意の数字 (.*)⇒任意のテキスト カッコにサプパターンとして設定を行い「$2」にて郵便番号を抽出。
②住所の抽出(郵便番号有)
※パターン「(.*)(\d{3}(-|)\d{4})(.*(市|区|町|村).*)」の説明
(.*)⇒任意のテキスト (\d{3}(-|)\d{4})⇒3桁の任意の数字+「-」または空白+4桁の任意の数字 (.*(市|区|町|村).*)⇒任意のテキスト+「市」「区」「町」「村」いずれかの文字+任意のテキスト カッコにてサプパターンに設定を行い「$4」にて住所を抽出。
③住所の抽出(郵便番号無)
※パターン「((.*(市|区|町|村).*)」の説明
(.*(市|区|町|村).*)⇒任意のテキスト+「市」「区」「町」「村」いずれかの文字+任意のテキスト カッコにてサプパターンに設定を行い「$0」にて住所を抽出。
④会社名の抽出
※パターン「(.*(株|㈱|社).*)」の説明
(.*)⇒任意のテキスト (株|㈱|社)⇒「株」「㈱」「社」いずれかの文字 (.*)⇒任意のテキスト カッコにてサプパターンに設定を行い「$0」にて会社名を抽出。
電話番号・メールアドレスの抽出
各項目ともトライステップを追加後にアクションステップ「変数の割当」を選択を行い、図の通りに「変数を設定」「スペース除去」「高度な抽出」を追加設定後に、エラー処理は「次の代替手段を試行」に設定します。
①携帯電話番号の抽出
※パターン「(.*)(:|)(070|080|090)(.*)」の説明
(.*)⇒任意のテキスト (:|)⇒「:」または空白 (070|080|090)⇒「070」「080」「090」いずれかの文字 (.*)⇒任意のテキスト カッコにてサプパターンに設定を行い「$3+$4」にて会社名を抽出。
②固定電話番号の抽出
※パターン「(.*)(TEL|tel|電|話)(:|)(.*)」の説明
(.*)⇒任意のテキスト (TEL|tel|電|話)⇒「TEL」「tel」「電話」いずれかの文字 (:|)⇒「:」または空白 (.*)⇒任意のテキスト カッコにてサプパターンに設定を行い「$4」にて固定電話を抽出。
③FAX番号の抽出
※パターン「(.*)(X|x)(:|)(.*)」の説明
(.*)⇒任意のテキスト (X|x)⇒「X」「x」いずれかの文字 (:|)⇒「:」または空白 (.*)⇒任意のテキスト カッコにてサプパターンに設定を行い「$4」にてFAX電話を抽出。
④メールアドレスの抽出
メールアドレスの抽出が最後にてトライステップの設定は行わず、エラー処理は「次のイテレェーション」を選択します。
※パターン「(.*)(L|l|ス|ル|ス|ル)(:|)(.*@.*)」の説明
(.*)⇒任意のテキスト (L|l|ス|ル|ス|ル⇒「L」「l」「ス」「ル」「ス」「ル」いずれかの文字 (:|)⇒「:」または空白 (.*@.*)⇒任意のテキスト+「@」+任意のテキスト カッコにてサプパターンに設定を行い「$4」にてメールアドレスを抽出。
Exce設定・Excel出力
部分文字列繰り返しステップの前にブランチを追加を行い、ウィンドウビュー画面の「excel-Excel変数」のタブを選択後右クリツクし、現在のウィンドウとして設定を選択を行い「Set Current Window」ステップを追加します。
次に、B1セルにカーソルを置き右クリツクし、セルのコンテンツ設定にて変数を設定を行い同様にB2~B7も変数設定を行います。
最後に、ファイル出力ステップを追加し出力Excelパスを設定します。
ファイルパスから「ファイル名」を抽出する。
ロボットの先頭にプランチを設定し、ファィル繰り返しステップを追加を行い特定のフォルダパスを設定します。
次に、トライステップを追加後に変数の割当を追加を行い図の通りに「変数を設定」「高度な抽出」を追加設定後に、エラー処理は「次の代替手段を試行」に設定します。
ファイル名の抽出(日付を除く)
※パターン「(.*)(\\(.*))+(\d{8})(_|)(.*)」の説明
(.*)⇒任意のテキスト (\\(.*))+⇒(「\」+任意のテキスト)の0回以上の繰り返し (\d{8})⇒8桁の任意の数字 (_|)⇒「_」のまたは空白 (.*)⇒任意のテキスト カッコにてサプパターンに設定を行い「$6」にてファイル名を抽出。
(ファイルパスに「数字8桁(日付)_」の設定が有るパターンにて抽出しています。)
ファイル名の取得
ファイル名取得の抽出が最後にてトライステップの設定は行わず、エラー処理は「次のイテレェーション」を選択します。
※パターン「(.*)(\\(.*))+」の説明
(.*)⇒任意のテキスト (\\(.*))+⇒(「\」+任意のテキスト)の0回以上の繰り返し カッコにてサプパターンに設定を行い「$3」にてファイル名を抽出。
値返却ステップの設定
最後に、値返却ステップを追加します。
以上にて完成です。
抽出結果の確認
テキストの連絡先をExcelに抽出する。
ロボットの実行を行い出力Excelを確認します。
また、下記テキストのフォーマットを変更を行い出力Excelが同じ内容に抽出されているか確認します。
ファイルパスから「ファイル名」を抽出
ロボットをデザインモードにて実行を行い、ファイル名が取得できているか確認を行います。
以上、正規表現の内容を理解し色々なパターンにて抽出して特定の文字を抽出してみましょう。