Skip to main content

文字列関数

文字列関数は、テキストデータに対して操作を実行します。文字列関数を使用してデータをクレンジングしたり、データを別の形式または大文字に変換したり、データに関するメトリックを計算したり、その他さまざまな操作を実行できます。文字列関数は、文字列 データ型 でのみ使用します。

Contains

Contains(String, Target, CaseInsensitive=1) : 文字列内の特定の文字列を検索します。文字列 (String) にターゲット (Target) が含まれている場合は True、それ以外は False を返します。

Contains('123ABC', 'ABC') は、Trueを返します。

Contains('123ABC', 'abc') は、Trueを返します。

Contains('123ABC', 'abc', 0) は、Falseを返します。

CountWords

CountWords(string) : 指定した文字列内の単語数を返します。単語はスペースで区切られた文字で定義されます。

CountWords("Basic Variables Households") 3を返します。

CountWords("Basic Variables Age:Female (Pop)Age 1") は、5を返します。

DecomposeUnicodeForMatch

DecomposeUnicodeForMatch(String) : アクセントを削除し、ナロー(半角英数)文字列に変換すると同時に複合文字を展開します。この関数は、Alteryx WString データ型を取り、小文字のナロー(半角英数)文字列の String データ型に変換します。すべてのアクセントやその他の装飾は削除されます。Alteryx データ型の詳細については、 データ型 を参照してください。

重要

この関数はマッチングのみに役立ちます。正規化された文字列とは見なされません。

この関数は、非欧米言語文字セット(たとえば日本語)には対応していません。この関数は、ワイド(全角)文字を含む文字列では使用しないでください。ワイド(全角)文字は「?」に変換されます。

DecomposeUnicodeForMatch("Prénoms français") prenoms francaisを返します。

EndsWith

EndsWith(String, Target, CaseInsensitive=1) : 文字列が特定の文字列で終わるどうかを確認します。文字列 (String) がターゲット (Target) で終わる場合は True、それ以外は False を返します。既定では大文字と小文字は区別されません。

EndsWith('123ABC', 'ABC') Trueを返します。

EndsWith('123ABC', 'abc') Trueを返します。

EndsWith('123ABC', 'abc', 0) Falseを返します。

FindNth

FindNth(Initial String, Target, Instance) : 初期文字列内のターゲット文字列のインスタンス(n回目の出現)を検索し、インスタンスの0インデックスの位置を返します。この関数では大文字と小文字が区別され、負のパラメーターは受け入れられません。

FindNth("Hello World","o",2) 7を返します。この関数は、指定された文字列から"o"の2番目のインスタンスを検索し、0インデックスの位置(この場合は7)を返します。

FindNth("Hello World","World",1) 6を返します。この関数は、指定された文字列から"World"の最初のインスタンスを検索し、最初の文字の0インデックスの位置(この場合は6)を返します。

FindNth("Hello World","o",1.8) 7を返します。この関数は、指定された文字列から"o"の2番目のインスタンス(1.8を最も近い整数に丸めたもの)を検索し、2番目の文字の0インデックスの位置(この場合は7)を返します。

FindNth("Hello World","world",1) -1を返します。この関数は、指定された文字列から"world"の最初のインスタンスを検索し、最初の文字の0インデックスの位置を返します。この場合は、-1です(大文字と小文字の区別のため、一致は見つかりません)。

FindNth("Hello World","l",0) -1を返します。この関数は、指定された文字列から"l"の0番目のインスタンスを検索し、0インデックスの位置を返します。この場合は-1です(0番目の位置が存在しないため見つかりません)。

FindNth("Hello World","l",-1) -1を返します。負のパラメーターは適用できないため、関数は-1 (見つかりません)を返します。

FindNth("Hello World", Null(), 1) は-1を返します。Nullと空は見つかりません。

FindNth(Hello world, "l", 1) エラーを返します。この関数では、最初の2つのパラメーターが文字列である必要があります。

FindString

重要

FindString 関数は大文字小文字を区別します。

FindString(String, Target) : 文字列 (String) 内の特定の文字列 (Target) を検索し、文字列内での出現位置を返します。

文字列 (String) 内の ターゲット (Target) で最初に生成された 0 から始まるインデックスを返します。出現がない場合は-1を返します。

Example

FindString([Name], "John") returns the 0-based index position of the first character of the target string if the provided string contains the target and returns -1 when the string does not.

  • FindString("John Smith", "John") returns 0. The first character ("J") of the target string "John" is in the 0 position of "John Smith."

  • FindString("Michael John Smith", "John") returns 8. The first character ("J") of the target string "John" is in the 8 position (0-based index) of "Michael John Smith."

  • FindString("David Smith", "John") returns -1. The target string "John" is not found in the string "David Smith."

GetLeft

GetLeft(String, Delimiter) 指定した1つ以上の区切り記号の最初のインスタンスまで、指定した文字列の左側の部分を返します。

区切り記号演算子

区切り記号 演算子は、大文字と小文字を区別します。区切り記号として「a」を指定すると、この関数は区切り記号として「a」のみを使用し、「A」は使用しません。

GetLeft("Automated Analytics for All", " ") "Automated"を返します。

GetLeft("Enable fast, confident decisions across the enterprise.", ",") "Enable fast"を返します。

GetPart

GetPart(String, Delimiter, Index) 指定した1つ以上の区切り記号を使用して文字列を部分文字列に分割し、インデックスで指定した位置に部分文字列を返します。

区切り記号演算子

区切り記号 演算子は、大文字と小文字を区別します。区切り記号として「a」を指定すると、この関数は区切り記号として「a」のみを使用し、「A」は使用しません。

この関数では0から始まるインデックスが使用されます。たとえば、インデックスが2の場合、この関数はインデックス2の3番目の部分文字列の位置から文字列を返します。

GetPart("Automated Analytics for All", " ", 1) "Analytics"を返します。

GetPart("Automated Analytics for All", " ", 0) "Automated"を返します。

GetPart("Enable fast, confident decisions across the enterprise.", ", ", 5) "Across"を返します。この例では、カンマとスペースという2つの区切り記号を使用しています。この関数では、どちらかの区切り記号が検出されると、文字列が分割されます。

GetPart("January 1, 2023", " ", 2) "2023"を返します。

GetRight

GetRight(String, Delimiter) 指定した1つ以上の区切り記号の最初のインスタンスより後の指定した文字列の右側の部分を返します。

区切り記号演算子

区切り記号 演算子は、大文字と小文字を区別します。区切り記号として「a」を指定すると、この関数は区切り記号として「a」のみを使用し、「A」は使用しません。

GetRight("Automated Analytics for All", " ") "Analytics for All"を返します。

GetRight("Enable fast, confident decisions across the enterprise.", ",") " confident decisions across the enterprise."を返します。( confident の前のスペースに注意してください)。

GetWord

GetWord(string, n) : 文字列のN番目の(0ベースの)単語を返します(0ベースインデックスとは、最初の単語が0の位置(0から始まる)にあり、2番目の単語が1の位置にあるという意味です。3番目以降も同様に続きます)。単語はスペース、タブ、リターン、改行の文字で区切られた文字の集合として定義されます。連続した複数の区切り記号は、単一の区切り記号として扱われます。

GetWord("Basic Variables Households", 0) "Basic"を返します。

GetWord("Basic Variables Households", 1) "Variables"を返します。

Left

Left(String, len) : 文字列 (String) の最初の [len] 文字を返します。len が 0 より小さいか文字列の長さより大きい場合、指定した文字列は変更されずにそのまま返されます。

Left("92688", 3) は、"926" の値を返します。

Length

Length(String) : 文字列 (String) の長さを返します。

警告

このDesigner関数とSQL関数では、Lengthの結果が異なる場合があります。これは、特定のデータベースでワイド文字や改行がどのように処理されるかによって異なります。例えば、改行文字はPostgreSQLでは長さにはカウントされませんが、Designerの Length関数ではカウントされます。また、Designerの結果は、ANSIドライバと Unicodeドライバのどちらを使用するかによって異なる場合があります。

Length("92688") は、5 の値を返します。

LowerCase

LowerCase(String) : 文字列を小文字に変換します。

LowerCase("M1P 1G6") "m1p 1g6"を返します。

MD5_ASCII

MD5_ASCII(String) : 文字列の MD5 ハッシュを計算します。文字列は、ナロー (半角英数) 文字のみであることが求められます。ワイド (全角) 文字は、ハッシュを計算する前に「?」に変換されます。String 型に使用します。WString 型には使用しないでください。この関数は、ワイド (全角) 文字を含む可能性のある文字列には使用しないでください。

MD5_UNICODE

MD5_UNICODE(String) : 従来のエンジンと AMP の両方に対して、UTF-16として保存されている文字列のMD5ハッシュを計算します。

MD5_UTF8

MD5_UTF8(String) : UTF-8 として保存されている文字列の MD5 ハッシュを計算します。

Md5_Ascii("Lá") は Latin1 として保存され、2 バイトの 4C E1 を取ります。この関数はバイト列の MD5 を計算し、結果として "0c0ee86cc87d87125ad8923562be952e " を返します。

Md5_Ascii("Lá ☢") ☢の文字は、ワイド(全角)文字が「?」に置換されるため、Md5_Ascii("Lá?")を計算したことになります。これは Latin1 として保存され、3 バイトの 4C E1 3F を取ります。この関数はバイト列の MD5 を計算し、結果として "a5a308ab19acf900efea8fc7b5b77b4d" を返します。

Md5_Unicode("Lá") は UTF-16 として保存され、4 バイトの 4C 00 E1 00 を取ります。この関数はバイトの MD5 を計算し、結果として "aa9969dfcca04249842cc457e5b3dd01" を返します。

Md5_Unicode("Lá ☢") が UTF-16 として保存される場合は、8 バイトの 4C 00 E1 00 3C D8 C8 DF を取ります。この関数はバイト列の MD5 を計算し、結果として "7c4762d93572dd02a8a405232e966b18" を返します。

Md5_Utf8("Lá") は UTF-8 として保存され、3 バイトの 4C C3 A1 を取ります。この関数はバイトの MD5 を計算し、結果として "68f00289dc3be140b1dfd4e031d733f1" を返します。

Md5_Utf8("Lá ☢") が UTF-8 として保存される場合は、7 バイトの 4C C3 A1 F0 9F 8F 88 を取ります。この関数はバイト列の MD5 を計算し、結果として "383fc0355db728a2078ce41a2ab6211b" を返します。

PadLeft

PadLeft (String, len, char) : 文字列を指定した文字で、指定した長さまで左に埋め込みます。パディング文字(char)の長さが2文字以上の場合、最初の文字のみが使用されます。

PadLeft("M", 4, "x") "xxxM"を返します。

PadRight

PadRight (String, len, char) : 文字列を指定した文字で、指定した長さまで右に埋め込みます。パディング文字(char)の長さが2文字以上の場合、最初の文字のみが使用されます。

PadRight("M", 4, "x") "Mxxx"を返します。

REGEX_CountMatches

REGEX_CountMatches(String,pattern,icase) : 文字列内でパターンに一致した数を返します。

icase はオプションのパラメーターです。指定されると、大文字と小文字は一致する必要があります。既定のicase=1は大文字小文字の無視を意味します。0に設定すると、大文字と小文字が一致する必要があります。

REGEX_Match

REGEX_Match(String,pattern,icase) : 正規表現に一致する文字列を検索します。

文字列が最初の文字から最後までのパターンと一致するかどうかを示します。

  • 文字列の先頭から必ずしも始まらないものを探すには、パターンを '.*' で始めます。

  • 文字列の最後まで必ずしも行くとは限らないものを探すには、パターンを '.*' で終わらせます。

icase はオプションのパラメーターです。指定されると、大文字と小文字は一致する必要があります。既定のicase=1は大文字小文字の無視を意味します。0に設定すると、大文字と小文字が一致する必要があります。

REGEX_Match("123-45-6789", "\d{3}-\d{2}-\d{4}") -1 (True)を返します。

REGEX_Replace

REGEX_Replace(String, pattern, replace, icase) : 正規表現を使用したテキストの置換を許可し、RegEx 検索 (pattern) と置換 (string) による結果の文字列を返します。最初の一致だけでなく、一致のすべての出現が置き換えられます。

置換 (replace) のパラメーターは、以下に示すような指定された値、または「$1」などのマークされたグループのいずれかです。マークされたグループが二重引用符で囲まれていることを確認します。

icase はオプションのパラメーターです。指定されると、大文字と小文字は一致する必要があります。

  • 既定では icase=1 で、大文字小文字の無視を意味します。

  • 0に設定すると、大文字と小文字が一致する必要があります。

REGEX_Replace("Don't reveal your Social Security number, 123-45-6789","\d{3}-\d{2}-\d{4}", "CLASSIFIED") "あなたの社会保障番号、CLASSIFIEDを明らかにすることはありません"を返します。

REGEX_Replace("Change all domain names from alteryx@Alteryx.com","@.*\.", "@extendthereach.") ”alteryx@extendthereach.comからすべてのドメイン名を変更します”を返します。

REGEX_Replace("25 test","(\d+)\s.*","$1") は25を返します。

Replace

Replace(String, Target, Replacement) : 文字列 (Target) の各出現箇所を文字列 (Replacement) で置き換えた後の文字列 (String) を返します。

Replace("Good judgment comes from experience", "experience", "awareness") は、"Good judgment comes from awareness"を返します。

ReplaceChar

ReplaceChar(String, y, z) : 文字 (y) を見つけるたびに文字 (z) で置き換えた後の文字列 (String) を返します。置換文字 (z) が複数の文字を含む文字列である場合、最初の文字のみが使用されます。文字 (z) が空の場合、文字 (y) の任意の文字に一致する各文字 (String) は、削除されます。

ReplaceChar("abcdefb", "b", "_") "a_cdef_"を返します。

ReplaceChar("@a#b%c", "@,#,%", "_") "_a_b_c"を返します。

ReplaceFirst

ReplaceFirst(String, Target, Replacement) : 最初に出現した文字列 (Target) を文字列 (Replacement) で置き換えた後の文字列 (String) を返します。

ReplaceFirst("abcdefb", "b", "_") "a_cdefb"を返します。

ReverseString

ReverseString(String) : 文字列内のすべての文字の順番を反転します。

ReverseString("abcdefb") "bfedcba"を返します。

Right

Right(String, len) : 文字列の最後の (len) 文字を返します。len が 0 より小さいか文字列の長さより大きい場合、文字列は変更されないままです。

Right("92688", 3) は、688 の値を返します。

StartsWith

StartsWith(String, Target, CaseInsensitive=1) : 文字列が特定の文字列で始まるかどうかを検索します。文字列 (String) が特定の文字列 (Target) で始まる場合は True、それ以外は False を返します。

StartsWith('ABC123', 'ABC') Trueを返します。

StartsWith('ABC123', 'abc') Trueを返します。

StartsWith('ABC123', 'abc', 0) Falseを返します。

STRCSPN

STRCSPN(String, y) : 文字列 (y) 内に 含まれない 文字で構成される文字列 (String) の最初のセグメントの長さを返します。

STRCSPN("Bob's Amaco", "~!@#$%^&*'()") は、3を返します。これは、文字列に句読点がないことを確認するのに便利なテストです。

StripQuotes

StripQuotes(String) : 文字列の末尾から見つかった一連の引用符またはアポストロフィを削除します。

StripQuotes("Hello there") "Hello"を返します

StripQuotes("'Hello there,' she said.") "'Hello there,' she said" を返します。

StripQuotes('"Hello there," she said.') ""Hello there," she said" を返します。

STRSPN

STRSPN(String, y) : 文字列(y)内に含まれる文字で構成される文字列(String)の最初のセグメントの長さを返します。

STRSPN("3034408896x105", "0123456789") 10を返します。これは、文字列が一連の文字で構成されていることを確認するのに便利なテストです。

Substring

Substring(String, start, length) : (Start) で始まり、(length) で終了する部分文字列を返します (指定されている場合)。

Substring("949-222-4356", 4, 8) は、 222-4356 を返します。

Substring("949-222-4356", 4, 6) は、222-43 を返します。

Substring("949-222-4356", 4) は、222-4356 を返します。

TitleCase

TitleCase(String) : 文字列をタイトルケースに変換します。

TitleCase("john smith") "John Smith"を返します。

Trim

Trim(String, y) : 文字列 (y) 内の文字を文字列 (String) の終わりから削除します。yはオプションで、既定では空白をトリミングします。TRIM 関数の例では、指定された文字がトリミングされることに注意してください。文字の順序は関係ありません。

Trim("!see instructions!!!", "!") は、「see instructions」を返します。

Trim(「 Test123 ") は、"Test123"を返します。

TrimLeft

TrimLeft(String, y) : 文字列 (y) の文字を文字列 (String) の先頭から削除します。yはオプションで、既定では空白類をトリミングします。

TrimLeft("** special invitation ", " *") "special invitation "を返します。

TrimRight

TrimRight(String, y) : 文字列 (y) の文字を文字列 (String) の末尾から削除します。yはオプションで、既定では空白類をトリミングします。

トリミングする文字の文字列を渡す場合、TRIM 関数は文字の順序を考慮しません。文字列を "list" として扱うため、リスト内のすべての文字がトリミングされます。文字列を置換する場合は、式で Replace 関数または REGEX 関数を使用します。

TrimRight("John Smith ") "John Smith"を返します。

TrimRight("John Smith**","*") "John Smith"を返します。

Uppercase

Uppercase(String) : 文字列を大文字に変換します。

Uppercase("John Smith") は、「JOHN SMITH」を返します。

Uuid

UuidCreate() : 固有識別子を作成します。

UuidCreate() ba131836-1ba3-4d42-8f7e-b81a99c2e838などのユニークな値を返します。

長さと文字列について

文字列の 長さ を参照するとき、最初の文字は 1 とカウントされます (すなわち、文字列 「record」の長さは6です)。

ただし、文字列内の文字の位置を参照する場合、実際には 文字間 の位置がカウントされます。したがって、最初の文字の位置を 0 と考えてください。たとえば、文字列「record」内の文字「c」の位置は、2 となります。