我正在尝试过滤用户名中的所有IP地址。但是这在我的查询中并没有真正起作用:
select distinct regexp_extract(username, '^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$', 0) from ips.
问题在于他甚至将数字识别为1000000作为ip地址。 知道怎么解决吗?
答案 0 :(得分:3)
你需要额外的反斜杠来逃避像这样的特殊字符。或\ s。在https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
上有关于wiki的更多信息尝试类似:
select
distinct regexp_extract(ip, '^([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})$', 0) as match
from
ips
having
match <> "";