0
BigqueryでアンケートのWebフックデータを受け取ります。現地語のコメントは、ユニコードと特殊文字として取り込まれます。私はすでにUnicodeを現地の言語に変換し、特殊文字を避けるために正規表現を行う関数を書いています。ReGex for emoji - Unicode/BigQuery
#standardSQL
CREATE TEMP FUNCTION DecodeUnicode(s STRING) AS (
(SELECT CODE_POINTS_TO_STRING(ARRAY_AGG(CAST(CONCAT('0x', x) AS INT64)))
FROM UNNEST(SPLIT(s, '\\u')) AS x
WHERE x != ''
)
);
WITH NPSDashboard_Webhook_Data1_copy AS (
SELECT
TRIM(Comment) Comment
FROM
`radiant-micron-790.Sharmila_Testing.NPSDashboard_Webhook_Data1_copy`
)
,
uchars AS (
SELECT DISTINCT
c,
DecodeUnicode(c) uchar
FROM NPSDashboard_Webhook_Data1_copy,
UNNEST(REGEXP_EXTRACT_ALL(Comment, r'(\\u[abcdef0-9]{4})')) c
)
SELECT
Comment,
STRING_AGG(IFNULL(uchar, x), '' ORDER BY pos) Decoded
FROM (
SELECT
Comment,
pos,
SUBSTR(Comment,
SUM(CASE char WHEN '' THEN 1 ELSE 6 END)
OVER(PARTITION BY Comment ORDER BY pos) - CASE char WHEN '' THEN 0 ELSE 5
END,
CASE char WHEN '' THEN 1 ELSE 6 END) x,
uchar
FROM NPSDashboard_Webhook_Data1_copy,
UNNEST(REGEXP_EXTRACT_ALL(Comment, r'(\\u[abcdef0-9]{4})|.')) char WITH OFFSET AS pos
LEFT JOIN uchars u ON u.c = char
)
GROUP BY Comment
そのリターンエラー: - :無効なコードポイント私は "\ ud83c \ udf38" その戻りエラーを検出しました55357
クエリが
エラーを失敗しました。これは絵文字の返信エラーで "Cherry Blossom"です。どのようにこの問題を解決する正規表現またはコンバータを行うには?