如何修改以下代码:
SELECT regexp_extract('156.154.161.94', '[A-Za-z0-9-]+\.[A-Za-z0-9-]+\.$', 0) AS ip;
161.94
要返回IP地址的前2个或3个八位位组?换句话说:156.154
或156.154.161
?
答案 0 :(得分:2)
前两个
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;
答案 1 :(得分:0)
更短的正则表达式:
SELECT regexp_extract('156.154.161.94', '\\d+\\.\\d+', 0) AS ip; --first 2 quibbles.
请注意,在Hive中转义的正确的正则表达式特殊字符是两个斜杠:\\.
不是一个\.
,不是\d
。