BigQuery - незаконная последовательность побега на REGEXP_REPLACE - PullRequest
0 голосов
/ 08 апреля 2020

У меня проблема с соответствием регулярному выражению в BigQuery.

REGEXP_REPLACE(tc.metadata->>'document_number', '\D', '', 'g') = m.document_number

Однако BigQuery, похоже, не любит escape-последовательности по какой-то причине, и я получаю эту ошибку, которую не могу понять :

Syntax error: Illegal escape sequence: \D 

Этот код работает нормально, но BigQuery недоволен им, и я не могу понять, почему. Заранее спасибо за помощь

Ответы [ 2 ]

2 голосов
/ 08 апреля 2020

Вам нужно дважды убежать от персонажа в BigQuery, так как первое / будет использовано JavaScript.

Попробуйте двойное экранирование, например, \\D, и это должно сработать для вас.

0 голосов
/ 09 апреля 2020

В [1], если вы прокрутите вниз, вы увидите экранирующие последовательности стандарта SQL, и ни одна из них не будет \D, поэтому, как говорит Бен П, вам нужно выполнить двойной экранирование, чтобы получить экранирующую последовательность backsla sh. Я предполагаю, что этого не хватает, но если бы вы могли уточнить ваш вопрос, ответ был бы действительно более точным.

[1] https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical#string_and_bytes_literals

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...