社区
Java SE
帖子详情
如何从一串字符中提取IP地址
miaozhanlu
2003-05-30 02:43:26
如何从一串字符中提取IP地址?
比如:
abdk d2.2d9(,dsf ]t202.33.1.8yff
怎样将202.33.1.8提取出来。
谢谢。
...全文
1471
13
打赏
收藏
如何从一串字符中提取IP地址
如何从一串字符中提取IP地址? 比如: abdk d2.2d9(,dsf ]t202.33.1.8yff 怎样将202.33.1.8提取出来。 谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sgdb
2003-06-10
打赏
举报
回复
1
xiruo的方法不错
不过最后一段匹配有问题
"(\\d{1}|\\d{2}|([0-1][0-9][0-9]|[0-2][0-5][0-5]))\.(\\d{1}|\\d{2}|([0-1][0-9][0-9]|[0-2][0-5][0-5]))\.(\\d{1}|\\d{2}|([0-1][0-9][0-9]|[0-2][0-5][0-5]))\\.\\d+"
miaozhanlu
2003-06-04
打赏
举报
回复
1
beyond_xiruo好认真!
上述正则表达式我试了试,有点问题:
1. \.应为\\.
2.在匹配时还有问题
比如 串为:
“ ab3afd7 ([218.22.48.26])”
我也考虑过严格过滤问题,但没有想出正则如何写,于是,考虑提取出IP串后,用StringTokenizer逐个分解判断<255.
ytdmm
2003-06-03
打赏
举报
回复
正则表达式方法确实不错~~~~~~~~~~~
希偌
2003-06-03
打赏
举报
回复
1
sorry,严格来说的话,IP地址最匹配的正则表达式为:
"(\\d{1}|\\d{2}|([0-1][0-9][0-9]|[0-2][0-5][0-5]))\.(\\d{1}|\\d{2}|([0-1][0-9][0-9]|[0-2][0-5][0-5]))\.(\\d{1}|\\d{2}|([0-1][0-9][0-9]|[0-2][0-5][0-5]))\.(\\d{1}|\\d{2}|([0-1][0-9][0-9]|[0-2][0-5][0-5]))"
miaozhanlu
2003-06-03
打赏
举报
回复
IP地址的第一位可不都是三个数字。可能是61.92.32.111
谢谢beyond_xiruo,我准备结帖了,我给你加50分。再次感谢!
阎罗
2003-06-02
打赏
举报
回复
你可以有indexof方法来提取第一次出现在小数点前面的三位数啊,
希偌
2003-06-02
打赏
举报
回复
IP地址的第一位都是三个数字
miaozhanlu
2003-06-02
打赏
举报
回复
1
beyond_xiruo的正则表达式方法太棒了!佩服
但有点小问题,上述做法对字符串
"abdk d2.2d9(,dsf ]t20,2.33.1.8yff"
IP的第一个地址前加入了逗号,就无法正确给出,可能需改动正则表达式,但我不知怎么改。
我简单扩展了一下功能。使能处理上述情况且可提出多个IP地址串。代码示例:
String regexString="\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
Pattern p = Pattern.compile(regexString);
String parentString="abdk d2.2d9(,dsf ]t20,2.33.1.8yff";
Matcher m = p.matcher(parentString);
boolean result = m.find();
while(result) {
System.out.println(m.group());
result = m.find();
}
另外,感谢其它各位仁兄的建议。
其中ytdmm兄的算法基本可行,但似乎稍逊正则表达式解法。谢谢。
ytdmm
2003-05-30
打赏
举报
回复
一个算法问题,可以这样考虑:
先把字符串中所有的"."找出来;依次考查连续的三个".",如果它们的中间是两个整数,并且左右两边也有两个整数(都<1000),那么这个子串就是IP地址了。
希偌
2003-05-30
打赏
举报
回复
1
正则表达式
String parentString="abdk d2.2d9(,dsf ]t202.33.1.8yff";
String regexString=".*(\\d{3}(\\.\\d{1,3}){3}).*";
String IPString=parentString.replaceAll(regexString,"$1");
System.out.print(IPString);
trust_me
2003-05-30
打赏
举报
回复
就算能够勉强做到,也会有很多的bug,例如:abdk d2.2d9(,dsf ]t5202.33.1.82yff
而你的ip是202.33.1.8,我真的不知道你该怎么把ip拿出来!
难道你得到的这个字符串就是这么凌乱的码???
miaozhanlu
2003-05-30
打赏
举报
回复
源串放入string中,IP地址是有一定规则的(数字且以3个点分隔)。
希望能提供相对现成的算法描述。
谢谢。
newman0708
2003-05-30
打赏
举报
回复
你又没有固定保存方法,当然不好找了。
但是办法总是的吗!
Python 47个
字符
串
方法
# Python 47个
字符
串
方法## 课程介绍同学们是否总是要搜资料、查官网后,才知道怎么操作
字符
串
?如果是,来学学本课程吧,本课程以讲解官网文档的方式,讲解 Python 47个
字符
串
方法,涉及替换、删除、连接、查找、...
java 正则表达式
提取
ip
_使用正则表达式从
字符
串
中
提取
IP
地址
在一个应用程序
中
,我得到了包含
IP
地址
的
字符
串
,但是这些
字符
串
没有精确的格式。我们所知道的是,这些
字符
串
可能包含
IP
地址
。这是
字符
串
的示例:“ XPSPort”“
IP
_10.29.167.187”“ 10.29.166.193”我想获得一个Java代码,如果有一个Java代码,则
提取
该
字符
串
的
IP
地址
;如果该
字符
串
不包含
IP
地址
,则返回“”。我尝试了这段代码,但它不起作用:String
IP
AD...
从
字符
串
中
提取
IP
子
串
(C语言)
从
字符
串
中
提取
IP
子
串
(C语言)
python
提取
一段
字符
串
中
的
ip
地址
代码如下: #!/usr/bin/env python3 # -*- coding:utf-8 -*- import re import os
ip
_str = os.popen('cat /root/bin/
ip
s').read()
ip
List = re.findall( r'[0-9]+(?:\.[0-9]+){3}',
ip
_str) print(
ip
List) 有时候从上游收到的
ip
地址
很多是夹杂其他
字符
的,比如逗号,分号,
中
文
字符
,英文
字符
等等,需要
提取
纯粹的
ip
地址
,可以使用这种方式。
【C语言】从
字符
串
中
提取
IP
地址
最简洁的方法
#include <stdio.h> #include <string.h> #include <stdbool.h> /** * @brief
IP
v4
地址
提取
* * @param str: 待
提取
的
字符
串
* @param len: 待
提取
的
字符
串
长度 * @param out_
ip
:
提取
到的
IP
v4
地址
* * @author PJW */ bool
IP
v4_GET(char *str,int len,char *out_
ip
) {
Java SE
62,616
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章