我有Hive表:
department ip
A 10.192.168.2
B 172.16.0.1
A 10.192.168.23
B 172.16.0.24
10.192.168.56
我想在ip列上使用regex,这样我就可以只获取ip范围内的记录,如下所示
输出:
department ip
A 10.192.168.2
A 10.192.168.23
10.192.168.56
此处a部门的ip范围为10.0.0.0到10.255.255.255。
1条答案
按热度按时间m3eecexj1#
首先,看看这个:https://www.regular-expressions.info/ip.html
regex不是执行此任务的工具,因为要进行严格检查,需要不可读的复杂regexp。另请阅读:使用regexp验证ipv4地址。严格正则表达式看起来太复杂了。如果可能,应用简单的regexp,如下所示:
或者,如果你需要严格的检查,然后分割ip地址
.
检查每个八位字节的范围,像这样,看起来比严格的正则表达式(未测试)简单:在python中,您可以应用更优雅的解决方案并像这样检查网络掩码/前缀:checking-if-ipv4-address-in-network-python