文字列関数

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