この記事は、UiPath Forum で行われている Advent of UiPath 2020 の Advent Challenge #2 の紹介記事です。
過去の投稿
“Advent of UiPath 2020” とは何か?
- 英語版のフォーラムで投稿されています。
- RPA challenge です(=お題を出て、みんなでRPA化してみる)
- 誰でも回答できます(フォーラムのアカウントがあれば)
- 3日おきに出題され、計8回(xmasイブまで)あります
- 回答して上位に選ばれれば、フォーラム上でスターがもらえます。
- フォーラムのスタッフが開催しているっぽいです。
チャレンジ2:正規表現で文字列を抽出
サンタにあなたの助けが必要です!サンタは現在、タイのバンコクで立ち往生しています。サンタは仕事で忙しかったため、トナカイにも休息を取らせていましたが、トナカイたちはどこかに行ってしまいました。でもサンタが彼らの名前を呼ぶと、トナカイたちは戻ってきます。
サンタは疲れていてトナカイの名前を思い出せません。。。でも幸運にも「Regex101」のWebサイトにトナカイの名前を保存していました。取り出すには正規表現で名前を引っ張り出す必要があります。
初心者用チャレンジ
正規表現を使用して、初心者リスト(https://regex101.com/r/AQJgbd/1 )からトナカイの名前を取得します。
上級者向けチャレンジ
正規表現を使用して、上級者用リスト(https://regex101.com/r/AQJgbd/2 )からトナカイの名前を取得します。
でも待ってください!サンタのトナカイのリストは本当に散らかっています。。。
エルフはファイルで遊んでいて、中にクリスマスの画像を描いています。
エルフがコンピューターに雪玉を投げて、ファイルが破損し、全体にランダムな文字が含まれてしまっています。
でもヒントもあります。サンタはテキスト内のパターンについて教えてくれました。サンタは、
各トナカイの名前には「トナカイ:」という接頭辞が付いている
ちょうど8つのトナカイがいた
と言っていました。
感想
今回は「正規表現で文字列を抽出する」というお題でした。
初心者用チャレンジは、シンプルな
[A-Z][a-z][\w]+
という正規表現でした。
上級者向けチャレンジは、「トナカイ:」という接頭辞が付いているヒントから
(?<=Reindeer:\s)([A-Z][a-z][\w]+)
という正規表現が使われています
「<=」が「XXXという文字で始まって」という意味です。
実際のフロー開発でも、正規表現はよく使います。
正規表現は奥が深く難しいので理解するのが難しいですが、簡単なパターンならサラっと書けるレベルになると
開発が早くなると思います。
どこかのサイトから持ってきて「コピペ」するにしても、内容を理解していないと後で思わぬバグになる可能性がありますので注意が必要かと思います(経験談)
回答で面白かったのは以下でした。
■ セレニウムでサイトをスクレイピングして、POwershellの正規表現で抽出する(もはやUiPathではない)
■ 1回目のチャレンジに出てきた「[ザ・ロック] (https://ja.wikipedia.org/wiki/%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A4%E3%83%B3%E3%83%BB%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%BD%E3%83%B3)」がまた、twilioでSMSを送ると言っています(笑)
クリエイティブですね。