我正在尝试过滤用户名中的所有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地址。你知道怎么修复它吗?
发布于 2013-08-18 12:29:57
您需要额外的反斜杠来转义特殊字符,如。或\s。在https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF的维基上有更多信息
尝试如下所示:
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 <> "";
https://stackoverflow.com/questions/18289445
复制相似问题