Снежинка: REGEX_SUBSTR дает ноль?
Я использую регулярное выражение в Snowflake и получаю удивительный результат. В частности, я запускаю это:
SELECT REGEXP_SUBSTR('https://example.com/a/b/c?name=me', 'https://example.com/a/b/c\?name=\\w+')
и я вернусь NULL
,
Я ожидал получить полный матч (согласно документации Snowflake). В этом случае это будет:
'https://example.com/a/b/c?name=me'
Что я недопонимаю?
Спасибо!
1 ответ
Вам нужно избегать косых черт
SELECT REGEXP_SUBSTR('https:\/\/example.com\/a\/b\/c\?name=me', 'https:\/\/example.com\/a\/b\/c\?name=\\w+')
Согласно комментарию Матиаса, ?
является токеном подстановочного знака, поэтому необходимо экранировать, что является двойным \ для получения \? мимо кодировки побега. таким образом
SELECT REGEXP_SUBSTR('https://example.com/a/b/c?name=me',
'https:\/\/example.com\/a\/b\/c\\?name=\\w+');
даст ответ, который вы ищете.