Регулярные выражения Hive для IP-адресов - PullRequest
1 голос
/ 11 апреля 2019

Как мне изменить следующий код:

SELECT regexp_extract('156.154.161.94', '[A-Za-z0-9-]+\.[A-Za-z0-9-]+\.$', 0) AS ip;
161.94

Чтобы вернуть первые 2 или 3 октета IP-адреса?Другими словами: 156.154 или 156.154.161?

Ответы [ 2 ]

2 голосов
/ 11 апреля 2019

Первые два

SELECT regexp_extract('156.154.161.94', '[0-9]+\.[0-9]+', 0) AS ip;

Первые три

SELECT regexp_extract('156.154.161.94', '[0-9]+\.[0-9]+\.[0-9]+', 0) AS ip;
0 голосов
/ 11 апреля 2019

Короче регулярное выражение:

SELECT regexp_extract('156.154.161.94', '\\d+\\.\\d+', 0) AS ip; --first 2 quibbles.

Обратите внимание, что правильные специальные символы регулярных выражений, экранирующие в Hive, - это две косые черты: \\. не один \., а не \d.

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