IsMatch
ワイルドカード検索 / パターン一致を実行して、文字列が指定されたパターンに一致するかどうかを確認します。 入力文字列は、メンバー名、別名、属性値または任意の関連文字列です。 この関数は、指定されたパターンに一致する文字列を検索し、見つかったアーティファクトを返します。
構文
IsMatch(string, patternstring, {MATCH_CASE | IGNORE_CASE})
パラメータ
- string
-
パターンに対してテストする文字列。
- patternstring
-
検索するパターン。 POSIX拡張正規表現構文である必要があります。 The Open Groupの構文仕様を参照してください。
特殊文字に関するその他のルールについては、このトピックのノートを参照してください。
- MATCH_CASE
-
オプション。 patternstringでは、大文字と小文字が区別されることを考慮してください。
MATCH_CASE
/IGNORE_CASE
を省略した場合、Essbaseでは、アウトライン・プロパティの大/小文字が区別される設定がデフォルトで使用されます。 - IGNORE_CASE
-
オプション。 patternstringでは大/小文字を区別しないでください。
MATCH_CASE
/IGNORE_CASE
を省略した場合、Essbaseでは、アウトライン・プロパティの大/小文字が区別される設定がデフォルトで使用されます。
ノート
-
$
を含むメンバー名を検索するには、patternstringで先頭に3つのバックスラッシュ(\
)エスケープ文字を付ける必要があります。 たとえば、Marketでメンバーa$bc
を検索するには、IsMatch(Market.CurrentMember.MEMBER_NAME, "a\\\$bc")
を使用する必要があります。 -
行末にある文字を検索するには、POSIX行末アンカーの前にドル記号(
$
)を付け、patternstringではバックスラッシュ(\
)エスケープ文字を付ける必要があります。 たとえば、Market内のc
で終わるメンバー名を検索するには、IsMatch(Market.CurrentMember.MEMBER_NAME, "c\$")
を使用する必要があります。 -
$
以外の特殊文字を検索するには、patternstringでこれらの文字の前にバックスラッシュ(\
)エスケープ文字を付ける必要があります。 たとえば、Marketでメンバーa?bc
を検索するには、IsMatch(Market.CurrentMember.MEMBER_NAME, "a\\?bc")
を使用する必要があります。
例
次の問合せは、名前が"new"で始まるメンバーを検索します:
SELECT
Filter(Market.Levels(0).Members,
IsMatch(Market.CurrentMember.MEMBER_NAME, "^new")
)
ON COLUMNS
FROM Sample.Basic
次の問合せは、名前が少なくとも"n"で始まるメンバーを検索します:
SELECT
Filter(Market.Levels(0).Members,
ISMATCH(Market.CurrentMember.MEMBER_NAME, "^n+")
)
ON COLUMNS
FROM Sample.Basic
次の問合せは、名前に"*"が含まれるメンバーを検索します:
SELECT
Filter(Year.Members,
ISMATCH(Year.CurrentMember.MEMBER_NAME, "\\*")
)
ON COLUMNS
FROM Sample.Basic
次の問合せは、名前にゼロまたは"a"が含まれるメンバーを検索します:
SELECT
Filter(Year.Members,
ISMATCH(Year.CurrentMember.MEMBER_NAME, "a?")
)
ON COLUMNS
FROM Sample.Basic