すべて展開 / 折りたたむ MatchRegEx スクリプトおよびチャート関数 このページ上
MatchRegEx() は、入力文字列 (text ) を 1 つ以上の正規表現 (regex ) と比較します。一致する正規表現パターンの数値の場所を返します。正規表現の評価がテキスト入力全体と一致する場合にのみ、一致応答を返します。一致するものが見つからない場合、関数は 0 を返します。
この関数は、大文字と小文字を区別する正規表現操作を実行します。代わりに、バリアント MatchRegExI() を使用して、大文字と小文字を区別しない正規表現操作を実行することもできます。
構文:
MatchRegEx
( text, regex1 [ , regex2,...regexN] )
戻り値データ型: 整数
引数
text
1 つ以上の正規表現と一致させる入力文字列テキスト。一致が発生するには、この入力文字列が regex パターンと完全に一致する必要があります。
regex
入力文字列に一致させようとする正規表現。1 つの数式に複数の正規表現を指定し、後続の引数として区切ることができます。
関数の例
MatchRegEx('testSample','test')
0 を返します。この関数は、text と regex パターンとの間に完全一致がある場合にのみ、一致応答を返します。testSample に test が含まれていても、他のテキスト (Sample ) が含まれているため、完全一致にはなりません。
MatchRegEx('abc123','[a-z]','[0-9]','[a-z]+[0-9]+','.+')
3 を返します。3 番目の正規表現パターンがデータに最初に一致します。
MatchRegEx('ABC','[abc]+','[123]')
MatchRegEx() は大文字と小文字を区別するため、0 を返します。
MatchRegExI('ABC','[abc]+','[123]')
1 を返します。関数の大文字と小文字を区別しないバリアント MatchRegExI() が使用されます。
MatchRegEx の使用目的
この関数のユース ケースは次のとおりです。
例 1 - 電話番号の形式を分析するロード スクリプト
ロード スクリプトと結果
概要
データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。
ロード スクリプトには次が含まれています:
確認する形式は、(###) ###-####、###-###-####、######### の 3 つあります。
ロード スクリプト
BusinessContactInfo:
Load MatchRegEx(ContactInfo,'\({0,1}[0-9]{3}\) [0-9]{3}-[0-9]{4}', '[0-9]{3}-[0-9]{3}-[0-9]{4}', '[0-9]{10}') as PhoneNumberFormat,
* Inline `
ID CompanyName ContactInfo
1 Company A (123) 456-7890
2 Company B 0123456790
3 Company C 234-567-8901
4 Company D (024) 680-2456
5 Company E (135) 791-3579
6 Company F 8901234567
7 Company G 235-235-2352
8 Company H (555) (555) (5555)
9 Company I 2342342343
10 Company J 444-444-4444
` (delimiter is '\t');
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
CompanyName
ContactInfo
PhoneNumberFormat
結果テーブル
Company A
(123) 456-7890
1
Company B 0123456790 3 Company C 234-567-8901 2 Company D (024) 680-2456 1 Company E (135) 791-3579 1 Company F 8901234567 3 Company G 235-235-2352 2 Company H (555) (555) (5555) 0 Company I 2342342343 3 Company J 444-444-4444 2
たとえば、ここから、各電話番号形式の合計数と認識された形式を持たない電話番号の数を計算する KPI を作成できます。
各形式の出現回数をカウントする集計式の例
(###) ###-####
3
=Count({<PhoneNumberFormat={'1'}>} PhoneNumberFormat)
###-###-#### 3 =Count({<PhoneNumberFormat={'2'}>} PhoneNumberFormat) ########## 3 =Count({<PhoneNumberFormat={'3'}>} PhoneNumberFormat) Unrecognized format 1 =Count({<PhoneNumberFormat={'0'}>} PhoneNumberFormat)
例 2 - ISBN 形式を識別するチャートの数式
チャートの数式および結果
概要
データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。
ロード スクリプトには次が含まれています:
このデータから、正規表現パターンで指定された構文に基づいて、各 ISBN コードが有効な 10 桁コードであるか 13 桁コードであるかを識別します。
ロード スクリプト
Books:
Load * Inline [
Book
ISBN 123-3-1234-1234-0
ISBN 012-2-0123-0123-4
ISBN 000-1-0123-0123-2
ISBN 0-111-23456-7
ISBN 555-2-5555-5555-3
ISBN 222-4-2222-2222-2
ISBN 1-901-23456-8
ISBN 333-3-3333-3333-3
ISBN 555-1-5151-5151-3
ISBN 232-1-2323-2323-1
ISBN 2-444-44444-4
ISBN 888-0-9999-0000-0
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します:
この計算軸を追加し、ISBN Format というラベルを付けます。
=if(MatchRegEx(Book, 'ISBN[ ]*([0-9]{3})-([0-9]{1})-([0-9]{4})-([0-9]{4})-([0-9]{1})', 'ISBN[ ]*([0-9]{1})-([0-9]{3})-([0-9]{5})-([0-9]{1})')=1, '13-digit',
if(MatchRegEx(Book, 'ISBN[ ]*([0-9]{3})-([0-9]{1})-([0-9]{4})-([0-9]{4})-([0-9]{1})', 'ISBN[ ]*([0-9]{1})-([0-9]{3})-([0-9]{5})-([0-9]{1})')=2, '10-digit',
'Invalid ISBN')) 結果テーブル ISBN 000-1-0123-0123-2 13-digit ISBN 0-111-23456-7 10-digit ISBN 1-901-23456-8 10-digit ISBN 2-444-44444-4 10-digit ISBN 012-2-0123-0123-4 13-digit ISBN 123-3-1234-1234-0 13-digit ISBN 222-4-2222-2222-2 13-digit ISBN 232-1-2323-2323-1 13-digit ISBN 333-3-3333-3333-3 13-digit ISBN 555-1-5151-5151-3 13-digit ISBN 555-2-5555-5555-3 13-digit ISBN 888-0-9999-0000-0 13-digit