我正在尝试过滤用户名中的所有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地址。你知道怎么修吗?
nxowjjhe1#
你需要额外的反斜杠来转义像这样的特殊字符。或\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 <> "";
1条答案
按热度按时间nxowjjhe1#
你需要额外的反斜杠来转义像这样的特殊字符。或\s。维基上有更多信息https://cwiki.apache.org/confluence/display/hive/languagemanual+udf
尝试以下操作: