Извлечь подстроку из строки, используя шаблон - PullRequest
0 голосов
/ 14 марта 2019

Я хотел бы извлечь подстроку из длинной строки на основе шаблона.Хотите знать, каков наилучший способ получить его?

http://abcdef?menu=xyz&source=push&push_id=1212239617294503480&message_id=7658a0a6-9d31-4c3c-9aa0-9169f24e2fdc

Шаблон: 'menu'

Подстрока ищет: 'xyz'

Ответы [ 3 ]

4 голосов
/ 14 марта 2019

Если ваш пример точно отражает вашу конечную цель, функция url_extract_parameter(), вероятно, является лучшим решением, чем регулярное выражение:

SELECT url_extract_parameter('http://abcdef?menu=xyz&source=push', 'menu');
-- returns 'xyz'
3 голосов
/ 14 марта 2019

В Presto DB вы должны иметь возможность использовать функцию regexp_extract() в форме, которая поддерживает группы захвата:

REGEXP_EXTRACT(val, 'menu=([^&]+)', 1)

Распределение регулярных выражений:

menu=        # litteral string 'menu='
(            # beginning of capturing group number 1
  [^&]+          # at least one character other than '&'
)            # end of capturing group number 1
0 голосов
/ 14 марта 2019

Это будет делать:

menu=([^&]+)

Вы можете проверить это здесь

...