Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

カスタム SQL で "設定するパラメーター" の正規表現を使用するときにバックスラッシュのエスケープが機能しない (Google BigQuery)

公開日: Aug 24, 2022
説明
Google BigQuery で正規表現をカスタム SQL に使用している場合、パラメーターでバックスラッシュをエスケープしても期待どおりに機能しません。

例は次のとおりです。

-サンプル データ [テーブル]:

aa
a.

-カスタム SQL:
select * from Table where regexp_contains(Column,r<parameter>)

-パラメーター:
a\.

-期待される結果:

a.

-実際の結果:
レコードが返されない

*バックスラッシュをエスケープせずにパラメーターを 'a.' に設定した場合の結果は次のとおり 

aa
a.


 

Cause

これは、Google BigQuery で使用されている次のような正規表現構文が原因です。
REGEXP_CONTAINS(sample, r"@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+")
https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#regexp_contains

正規表現の前に "r" があることに注意してください。
ただし、パラメーターを使用して正規表現を設定しても、バックスラッシュのエスケープは期待どおりに機能していません。
"r" を削除した場合、バックスラッシュのエスケープは期待どおりに機能しています。
解決策
カスタム SQL の変更
---------------------
select * from Table where regexp_contains(Column,r<parameter>)
---------------------

---------------------
select * from Table where regexp_contains(Column,<parameter>)
---------------------
*Remove 'r'
 
ナレッジ記事番号

001474430

 
読み込み中
Salesforce Help | Article