文字列関数

Profile Query Language (PQL)が提供する関数によって、文字列の操作が容易になります。 その他のPQL関数について詳しくは、Profile Query Language 概要を参照してください。

次に類似

like 関数は、文字列がブール値として指定されたパターンに一致することを判別するために使用されます。

形式

{STRING_1} like {STRING_2}
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}

最初の文字列列と照合される式です。式の作成に使用できる特殊文字として、%_ の 2 つがサポートされています。

  • % は、0 個以上の文字を表すために使用されます。
  • _ は、1 文字を表すために使用されます。

次の PQL クエリでは、「es」というパターンを含むすべての市区町村を取得します。

city like "%es%"

startsWith

startsWith 関数は、文字列が、指定された部分文字列で始まるかどうかをブール値として判定するために使用されます。

形式

{STRING_1}.startsWith({STRING_2}, {BOOLEAN})
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列内で検索する文字列です。
{BOOLEAN}
チェックで大文字と小文字が区別されるかどうかを指定するオプションのパラメーターです。デフォルトでは true に設定されています。

次の PQL クエリでは、大文字と小文字を区別したうえで、人の名前が「Joe」で始まるかどうかを判定します。

person.name.startsWith("Joe")

doesNotStartWith

文字列の先頭が指定の部分文字列になっていないかどうかを判定するには、doesNotStartWith 関数を使用します。

形式

{STRING_1}.doesNotStartWith({STRING_2}, {BOOLEAN})
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列内で検索する文字列です。
{BOOLEAN}
チェックで大文字と小文字が区別されるかどうかを指定するオプションのパラメーターです。デフォルトでは true に設定されています。

次の PQL クエリでは、大文字と小文字を区別したうえで、人の名前が「Joe」で始まらないかどうかを判断します。

person.name.doesNotStartWith("Joe")

endsWith

endsWith 関数は、文字列が、指定された部分文字列で終わることをブール値として判別するために使用されます。

形式

{STRING_1}.endsWith({STRING_2}, {BOOLEAN})
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列内で検索する文字列です。
{BOOLEAN}
チェックで大文字と小文字が区別されるかどうかを指定するオプションのパラメーターです。デフォルトでは true に設定されています。

次の PQL クエリでは、大文字と小文字を区別したうえで、人のメールアドレスが「.com」で終わるかどうかを判定します。

person.emailAddress.endsWith(".com")

doesNotEndWith

文字列の末尾が指定の部分文字列になっていないかどうかをブール値として判定するには、doesNotEndWith 関数を使用します。

形式

{STRING_1}.doesNotEndWith({STRING_2}, {BOOLEAN})
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列内で検索する文字列です。
{BOOLEAN}
チェックで大文字と小文字が区別されるかどうかを指定するオプションのパラメーターです。デフォルトでは true に設定されています。

次の PQL クエリでは、大文字と小文字を区別したうえで、人のメールアドレスが「.com」で終わらないかどうかを判定します。

person.emailAddress.doesNotEndWith(".com")

contains

contains 関数は、文字列が、指定された部分文字列をブール値として含んでいるかどうかを判定するために使用されます。

形式

{STRING_1}.contains({STRING_2}, {BOOLEAN})
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列内で検索する文字列です。
{BOOLEAN}
チェックで大文字と小文字が区別されるかどうかを指定するオプションのパラメーターです。デフォルトでは true に設定されています。

次の PQL クエリでは、大文字と小文字を区別したうえで、人のメールアドレスが「2010@gm」という文字列を含んでいるかどうかを判定します。

person.emailAddress.contains("2010@gm")

doesNotContain

文字列がブール値として指定の部分文字列を含んでいないかどうかを判定するには、doesNotContain 関数を使用します。

形式

{STRING_1}.doesNotContain({STRING_2}, {BOOLEAN})
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列内で検索する文字列です。
{BOOLEAN}
チェックで大文字と小文字が区別されるかどうかを指定するオプションのパラメーターです。デフォルトでは true に設定されています。

次の PQL クエリでは、大文字と小文字を区別したうえで、人のメールアドレスが「2010@gm」という文字列を含んでいないかどうかを判定します。

person.emailAddress.doesNotContain("2010@gm")

equals

equals 関数は、文字列が、指定された文字列に等しいかどうかをブール値として判定するために使用されます。

形式

{STRING_1}.equals({STRING_2})
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列と比較する文字列です。

次の PQL クエリでは、大文字と小文字を区別したうえで、人の名前が「John」かどうかを判定します。

person.name.equals("John")

notEqualTo

notEqualTo 関数は、文字列が指定の文字列に等しくないかどうかをブール値として判定するために使用されます。

形式

{STRING_1}.notEqualTo({STRING_2})
引数
説明
{STRING_1}
チェックの実行対象となる文字列です。
{STRING_2}
最初の文字列と比較する文字列です。

次の PQL クエリでは、大文字と小文字を区別したうえで、人の名前が「John」でないかどうかを判定します。

person.name.notEqualTo("John")

matches

matches 関数は、文字列が特定の正規表現と一致するかどうかを判定するために使用されます。正規表現のマッチングパターンをブール値として使用する方法について詳しくは、 このドキュメントを参照してください。

形式

{STRING_1}.matches(STRING_2})

次の PQL クエリでは、大文字と小文字を区別せずに、人の名前が「John」で始まるかどうかを判定します。

person.name.matches("(?i)^John")
NOTE
\w などの正規表現関数を使用している場合は、バックスラッシュ文字をエスケープする 必要があります。 そのため、\w だけを書くのではなく、余分なバックスラッシュを含めて \\w を書く必要があります。

正規表現グループ

regexGroup 関数は、文字列として提供される正規表現に基づいて特定の情報を抽出するために使用されます。

形式

{STRING}.regexGroup({EXPRESSION})

次の PQL クエリは、メールアドレスからドメイン名を抽出するために使用します。

emailAddress.regexGroup("@(\\w+)", 1)
NOTE
\w などの正規表現関数を使用している場合は、バックスラッシュ文字をエスケープする 必要があります。 そのため、\w だけを書くのではなく、余分なバックスラッシュを含めて \\w を書く必要があります。

次の手順

ここで学習した文字列関数は、PQL クエリ内で使用できます。その他の PQL 関数について詳しくは、プロファイルクエリ言語の概要を参照してください。

recommendation-more-help
770bc05d-534a-48a7-9f07-017ec1e14871