文字列関数
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}
例
次の PQL クエリでは、大文字と小文字を区別したうえで、人の名前が「Joe」で始まるかどうかを判定します。
person.name.startsWith("Joe")
doesNotStartWith
文字列の先頭が指定の部分文字列になっていないかどうかを判定するには、doesNotStartWith
関数を使用します。
形式
{STRING_1}.doesNotStartWith({STRING_2}, {BOOLEAN})
{STRING_1}
{STRING_2}
{BOOLEAN}
例
次の PQL クエリでは、大文字と小文字を区別したうえで、人の名前が「Joe」で始まらないかどうかを判断します。
person.name.doesNotStartWith("Joe")
endsWith
endsWith
関数は、文字列が、指定された部分文字列で終わることをブール値として判別するために使用されます。
形式
{STRING_1}.endsWith({STRING_2}, {BOOLEAN})
{STRING_1}
{STRING_2}
{BOOLEAN}
例
次の PQL クエリでは、大文字と小文字を区別したうえで、人のメールアドレスが「.com」で終わるかどうかを判定します。
person.emailAddress.endsWith(".com")
doesNotEndWith
文字列の末尾が指定の部分文字列になっていないかどうかをブール値として判定するには、doesNotEndWith
関数を使用します。
形式
{STRING_1}.doesNotEndWith({STRING_2}, {BOOLEAN})
{STRING_1}
{STRING_2}
{BOOLEAN}
例
次の PQL クエリでは、大文字と小文字を区別したうえで、人のメールアドレスが「.com」で終わらないかどうかを判定します。
person.emailAddress.doesNotEndWith(".com")
contains
contains
関数は、文字列が、指定された部分文字列をブール値として含んでいるかどうかを判定するために使用されます。
形式
{STRING_1}.contains({STRING_2}, {BOOLEAN})
{STRING_1}
{STRING_2}
{BOOLEAN}
例
次の PQL クエリでは、大文字と小文字を区別したうえで、人のメールアドレスが「2010@gm」という文字列を含んでいるかどうかを判定します。
person.emailAddress.contains("2010@gm")
doesNotContain
文字列がブール値として指定の部分文字列を含んでいないかどうかを判定するには、doesNotContain
関数を使用します。
形式
{STRING_1}.doesNotContain({STRING_2}, {BOOLEAN})
{STRING_1}
{STRING_2}
{BOOLEAN}
例
次の 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")
\w
などの正規表現関数を使用している場合は、バックスラッシュ文字をエスケープする 必要があります。 そのため、\w
だけを書くのではなく、余分なバックスラッシュを含めて \\w
を書く必要があります。正規表現グループ
regexGroup
関数は、文字列として提供される正規表現に基づいて特定の情報を抽出するために使用されます。
形式
{STRING}.regexGroup({EXPRESSION})
例
次の PQL クエリは、メールアドレスからドメイン名を抽出するために使用します。
emailAddress.regexGroup("@(\\w+)", 1)
\w
などの正規表現関数を使用している場合は、バックスラッシュ文字をエスケープする 必要があります。 そのため、\w
だけを書くのではなく、余分なバックスラッシュを含めて \\w
を書く必要があります。次の手順
ここで学習した文字列関数は、PQL クエリ内で使用できます。その他の PQL 関数について詳しくは、プロファイルクエリ言語の概要を参照してください。