我有一个巨大的IP范围列表,其中每个范围用连字符分割并放在新行上,我只需要将IP保持在相同的3级范围内:50.197。 62 < /strong>.0-50.197.62.255,但不是50.197.62.0-50.197.73.125等 到目前为止还无法知道如何做到这一点。 我真的很感激这里的任何帮助。感谢。
其他例子。
想保留:
4.49.119.0-4.49.119.255
12.161.203.64-12.161.203.79
23.25.83.201-23.25.83.201
24.23.113.0-24.23.113.255
38.101.137.0-38.101.137.255
38.107.144.0-38.107.144.255
38.107.146.0-38.107.146.255
50.73.187.0-50.73.187.216
想要与正则表达式匹配,以便我可以删除它们:
64.58.246.0-64.58.247.255
66.212.138.0-66.212.140.255
67.172.21.0-67.172.23.255
67.186.41.128-67.186.50.115
68.235.192.0-68.235.223.255
70.89.104.0-70.89.105.87
71.16.71.96-71.16.72.103
71.60.156.12-71.60.162.255
71.162.15.128-71.162.12.98
72.22.23.0-72.22.24.127
答案 0 :(得分:1)
如果您的意思是希望匹配以“50.197.62”开头的任何IP地址,您可以这样做:
/50\.197\.62\.\d{1,3}/
通常在IP地址中指定范围如下所示:50.197.62.0/24
它被称为CIDR表示法,你可以在这里阅读更多相关内容:https://networkengineering.stackexchange.com/questions/3697/the-slash-after-an-ip-address-cidr-notation
编辑:
在了解到您希望匹配整个字符串“ip-ip”后,它变得更加清晰。
/(\d{1,3}\.\d{1,3}\.\d{1,3}\.)\d{1,3}-\1\d{1,3}/g
演示:https://regex101.com/r/cO1nQ6/1
编辑2:
反向:
/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.)\d{1,3}-(?!\1)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/gm
这需要多行的标志m
来强制搜索从行开始。我也应该在另一方面使用它。