OutSystemsでの正規表現の使用
この記事は作成中です。この新しいバージョンはどの程度参考になりましたか。投票でお聞かせください。
正規表現の検索パターンを使用してテキスト文字列を処理することができます。正規表現の仕組みや記述方法に関する追加リソースについては、「関連リソース」のリンクをご覧ください。
OutSystemsのTextエクステンションに含まれている以下の2つのサーバーアクションによって、正規表現をアプリで使用することができます。
-
正規表現パターンに一致するテキストを検索するには、Regex_Searchを使用します。
-
正規表現パターンに一致するテキストを置換するには、Regex_Replaceを使用します。
例: テキストがGUIDであるかどうかを確認する
グローバル一意識別子(GUID)は、128ビットの16進数の整数です(例: 4ccdb844-bcb6-4abd-83af-6655f31ca65d
)。環境やシステム全体で識別子を一意にする必要がある場合に、GUIDを使用できます。
正規表現"^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
を使用して、テキスト文字列にGUIDのみが含まれているかどうかを確認できます。
GUIDとその形式の詳細については、RFC 4122をご覧ください。
以下の例は、この正規表現とRegex_Searchアクションを使用して、テキスト入力がGUIDであるかどうかを確認する再利用可能なサーバーアクションを作成する方法を示しています。
-
アプリのモジュールで[Manage Dependencies]を開き、依存関係としてTextプロデューサのRegex_Searchアクションを追加します。
-
[Logic]タブで、新しいサーバーアクションを作成して「
CheckGUID
」という名前を付けます。 -
このアクションに以下の変数を追加します。
-
TextToCheck
という名前のTextデータ型の入力パラメータを追加します。 -
IsGuid
という名前のBooleanデータ型の出力パラメータを追加します。
-
-
アクションフローで、Regex_Searchアクションを追加します。
-
Regex_Searchアクションのプロパティを以下のように設定します。
-
Textを入力パラメータ「
GuidToCheck
」に設定します。 -
Patternを「
"^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
」に設定します。
-
-
Regex_Searchアクションの後にAssignを追加し、割り当て
IsGuid
=Regex_Search.Found
を追加します。
これらの手順により、テキスト入力を受け取って、入力テキストがGUIDである場合にTrueになるBoolean値を出力するサーバーアクションが作成されました。
例: テキストからGUIDを抽出する
前の例を拡張し、テキスト文字列の中にあるGUIDを検出して出力できるようにします。正規表現"[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}"
を使用して、テキスト文字列にGUIDが含まれるかどうかを確認できます。
テキスト入力からGUIDを検出して出力する再利用可能なサーバーアクションを作成するには、以下の手順を実行します。
-
アプリのモジュールで[Manage Dependencies]を開き、依存関係としてTextプロデューサのRegex_Searchアクションを追加します。
前の例を完了しており、同じモジュールを使用する場合は、この手順はスキップします。
-
[Logic]タブで、新しいサーバーアクションを作成して「
ExtractGUID
」という名前を付けます。 -
このアクションに以下の変数を追加します。
-
GuidToCheck
という名前のTextデータ型の入力パラメータを追加します。 -
HasGuid
という名前のBooleanデータ型の出力パラメータを追加します。 -
Guid
という名前のTextデータ型の出力パラメータを追加します。
-
-
アクションフローで、Regex_Searchアクションを追加します。
-
Regex_Searchアクションのプロパティを以下のように設定します。
-
Textを入力パラメータ「
TextToCheck
」に設定します。 -
Patternを「
"[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}"
」に設定します。
-
-
Regex_Searchアクションの後にAssignを追加し、以下の割り当てを追加します。
HasGuid
=Regex_Search.Found
Guid
=Regex_Search.PatternResult
これらの手順により、テキスト入力を受け取って、入力テキストにGUIDが含まれる場合にTrueになるBoolean値と抽出されたGUIDをテキストとして出力するサーバーアクションが作成されました。