Flex Gateway新着情報
Governance新着情報
Monitoring API Managerいくつかの DataWeave 関数は、引数として正規表現を受け入れます。これを使用して、一致を返したりチェックしたりできます。関数と変数を含む DataWeave 式を組み込んだ正規表現を作成することもできます。
開始する前に、DataWeave バージョン 2 (%dw 2.0) は Mule 4 アプリケーションを対象とすることに注意してください。Mule 3 アプリケーションの場合、Mule 3.9 ドキュメントセットの DataWeave バージョン 1 (%dw 1.0) の例を参照してください。他の Mule バージョンの場合は、目次の Mule Runtime バージョンセレクターを使用できます。
この例では、いくつかの DataWeave 関数で正規表現を使用して、入力変数「mycompany.com」との一致を返します。
contains は、入力文字列の一部に一致する正規表現に基づいて true を返します。
find は、入力文字列内の一致する場所を指定するインデックスの配列を返します。この関数は、入力文字列を文字列配列として扱います。
match は、正規表現に一致するサブ文字列の配列を返します。
matches は、正規表現が入力文字列と完全に一致するため true を返します。
replace は、正規表現 \..*m に基づいて、入力文字列の .com を .net に変更する URL を返します。
scan は、正規表現が一致するカンマ区切りのサブ文字列のサブ配列を返します。
splitBy は、入力の . に基づいて入力文字列をサブ文字列の配列に分割します。
%dw 2.0
var myString = "mycompany.com"
output application/json
---
{
	"contains" : myString contains(/c.m/),
	"find" : myString find(/[m|n].|m$/),
	"match" : myString match(/([a-z]*).[a-z]*/),
	"matches" : myString matches(/([a-z]*).[a-z]*/),
	"replaceWith" : myString replace /\..*m/ with ".net",
	"scan" : myString scan(/([a-z]*).(com)/),
	"splitBy" : myString splitBy(/[.\/]/)
}
{
  "contains": true,
  "find": [
    [
      0
    ],
    [
      4
    ],
    [
      7
    ],
    [
      12
    ]
  ],
  "match": [
    "mycompany.com",
    "mycompany"
  ],
  "matches": true,
  "replaceWith": "mycompany.net",
  "scan": [
    [
      "mycompany.com",
      "mycompany",
      "com"
    ]
  ],
  "splitBy": [
    "mycompany",
    "com"
  ]
}
関数のドキュメントについては、以下を参照してください。
この例は、DataWeave の連結関数 (++) を使用して正規表現を作成し、DataWeave 変数を正規表現に組み込みます。
この正規表現は「somebiz」を照合します。この例では、replace と with を使用して「somebiz」を「abcd」に置き換えます。
%dw 2.0
var myCompany = { "name" : "biz" }
var myInputA = "somebiz-98765"
output application/json
---
{
  example: myInputA replace (("(^s.*e)" ++ myCompany.name) as Regex) with ("abcd")
}
{
  "example": "abcd-98765"
}