UiPath (.*?)一致する文字列を取得 アクティビティ

2020年10月6日

この記事では文字列から特定のパターンに合致する文字列の一覧を抽出する

「(.*?)一致する文字列を取得」の使い方を紹介します。

アクティビティの使い方

「プログラミング」、「文字列」より「一致する文字列を取得」を

デザイナーパネルの中にドロップします。

「プログラミング」、「文字列」より「一致する文字列を取得」をデザイナーパネルの中にドロップ

次にプロパティを設定します。

入力プロパティとパターンプロパティの設定例

入力には抽出元の文字列をパターンには取得条件を正規表現で指定します。

正規表現は下記のようなものが代表例です。

文字説明
.任意の1文字
+直前の文字を1回以上繰り返す
*直前の文字を0回以上繰り返す

全てを説明すると広くなるためこちらの参照もお願いします。

(外部サイト:murashun.jp様)

今回は入力に"ac_abcd_afcd_aadfcd"を指定し、パターンに"a.*?c"を指定します。

このパターンはaから始まり、cで終わる文字列を取得します。

よって下記の赤字部分が抽出されます。

ac_abcd_afcd_aadfcd"

そして結果プロパティに結果の一覧を受け取る変数を指定します。

データ型はIEnumerable<Macth>です。型の検索を行う必要があります。

まずSystem.Collections.Generic.IEnumerable<T>で検索し、

Tの部分を、System.Text.RegularExpressions.Matchで検索します。

IEnumerable<Macth>を検索

受け取った一覧は繰り返し(コレクションの各要素)で処理します。

TypeArgumentにSystem.Text.RegularExpressions.Matchを、

コレクション値に文字列の取得結果変数を指定します。

繰り返し(コレクションの各要素)のプロパティ設定

要素.Value(シーケンス中ではitem.Value)で一つの結果が取得出来るので

これを1行を書き込みで表示します。

取得した全要素を表示するシーケンス

これを実行すると結果が一つずつ出力パネルに表示されます。

実行結果

プロパティ

共通

表示名プロパティ

表示名はデザイナーパネルに反映されます。

入力

パターン
パターンプロパティ

取得条件を正規表現の文字列で指定します。

正規表現がどのようなものかはこちらが参考になります。

(外部サイト:murashun.jp様)

入力
入力プロパティ
正規表現オプション

正規表現の付加情報を設定します。

正規表現オプションプロパティ

外部サイトhttps://docs.microsoft.com/にリンクします。

設定値説明
IgnoreCase大文字と小文字を区別しない一致を使用します。 詳細については、「大文字と小文字を区別しない一致」を参照してください。
Multiline複数行モードを使用します。^ と $ は、(入力文字列の先頭および末尾ではなく) 各行の先頭および末尾と一致します。 詳細については、「複数行モード」を参照してください。
Singleline単一行モードを使用します。このモードでは、ピリオド (.) は任意の 1 文字と一致します (\n を除くすべての文字の代用)。 詳細については、「単一行モード」を参照してください。
ExplicitCapture名前のないグループをキャプチャしません。 (?<name> subexpression) という形式で、明示的に名前または番号が付加されたグループのみを有効なキャプチャ対象とします。 詳細については、「明示的なキャプチャのみ」を参照してください。
Compiled正規表現をアセンブリにコンパイルします。 詳細については、「コンパイルされた正規表現」を参照してください。
IgnorePatternWhitespaceエスケープされていない空白をパターンから除外し、シャープ記号 (#) の後ろのコメントを有効にします。 詳細については、「空白を無視」を参照してください。
RightToLeft検索の方向を変更します。 左から右ではなく、右から左に検索します。 詳細については、「右から左モード」を参照してください。
ECMAScript式の ECMAScript 準拠の動作を有効にします。 詳細については、「ECMAScript 一致の動作」を参照してください。
CultureInvariant言語のカルチャの違いを無視します。 詳細については、「インバリアント カルチャを使用した比較」を参照してください。

その他

項目名説明
結果検索結果を受け取る変数を指定します。
データ型はIEnumerable<Macth>です。(型の検索方法は前述)
プライベートUiPathのログに引数や変数の値が表示されるかを指定します。
機密性の高い情報を取り扱う場合にのみチェックする必要があります。

関連記事