java 正则表达式 提取IP

来源:百度知道 编辑:UC知道 时间:2024/09/22 08:20:33
我有一个文本文档里面很多IP地址
我想用java的正则表达式把ip都找出来
最好 还能过滤重复的
218.98.195.19:554@HTTP$6&30,661,691#山东省济南市 百灵宽带
218.93.113.58:3128@HTTP$6&310,951,951#江苏省常州市 电信ADSL
222.243.200.107:8080@HTTP$6&330,941,1873#湖南省永州市 电信
218.247.131.195:8080@HTTP$6&311,972,1262#北京市 方正宽带
221.2.96.198:3128@HTTP$6&481,1322,1372#山东省临沂市 网通
211.140.192.98:8080@HTTP$6&221,1192,1192#辽宁省大连市 移动
58.216.235.242:3128@HTTP$6&250,1061,1061#江苏省 电信
221.8.56.106:3129@HTTP$6&101,1312,1312#吉林省长春市 网通ADSL
218.7.48.22:8080@HTTP$6&121,1643,1643#黑龙江省齐齐哈尔市龙沙区 天天网吧

分析一下IP地址组成:数字和“.”
那么正则可以这样写:[0-9.]+
根据你的补充,那么IP可以这样写:[0-9.:]+@,这个是包括端口号的情况
如果不要端口号,可以这样写[0-9.]+:
Java我没学过,但正则表达式大体是通用的。

至于如此长段文本里去重,个人觉得纯以正则表达式不行,还得配合程序。由于我不是java程序员,不好解释。不过,你可以用反复比较文本的方式还解决。
比如ip:218.98.195.19,估计java里也应该有indexOf之类的方法,查找出,然后过滤。
仅作参考用。

文档内容示例