社区
Linux/Unix社区
帖子详情
这里有没有人熟悉规则表达式,帮我看看这个过滤IP地址的表达式哪里错了。。。
nightfallrove
2004-08-06 07:59:59
((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])
这个表达式为什么在“54.11.154 .192.168.52.0”这个测试数据里能把
54.11.154 也当做IP地址匹配出来。。。也就是说在这个测试数据里面能找到两个
IP地址。。。。我实现想不出我的表达式哪里错了。。。
谢谢。
...全文
212
15
打赏
收藏
这里有没有人熟悉规则表达式,帮我看看这个过滤IP地址的表达式哪里错了。。。
((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9]) 这个表达式为什么在“54.11.154 .192.168.52.0”这个测试数据里能把 54.11.154 也当做IP地址匹配出来。。。也就是说在这个测试数据里面能找到两个 IP地址。。。。我实现想不出我的表达式哪里错了。。。 谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nightfallrove
2004-08-13
打赏
举报
回复
yanedanny(丹尼 袁)
是不用考虑0.0.0.0的情况。。。就把它当做IP地址好了,,
shenzy77shenzy77
2004-08-13
打赏
举报
回复
学习一下!我也不懂的啊!~
palluo
2004-08-12
打赏
举报
回复
真可恶, 楼主辛苦了。
skyupsky
2004-08-12
打赏
举报
回复
mark!
superMeng0500
2004-08-12
打赏
举报
回复
学习一下,顺便领分:)
nkwj
2004-08-12
打赏
举报
回复
awk!?
ft
yanedanny
2004-08-12
打赏
举报
回复
awk的bug,是比较奇怪。还有,我觉得你的规则表达式对0好像无法过滤。
SeeMin
2004-08-11
打赏
举报
回复
?领了:)
phoenixandlinda
2004-08-10
打赏
举报
回复
"规则表达式"自己就是在串里面循环匹配的,你不用在些代码自己做循环,你看看是不是这个地方有问题。最好把代码贴出来。
nightfallrove
2004-08-10
打赏
举报
回复
SHIT....
是awk的BUG。。。。。。。。。。。
升级到3.1.3就没问题了。。。我靠,,,
大家进来领分吧。。。
nightfallrove
2004-08-10
打赏
举报
回复
用match的时候不会自动循环匹配的,所以加了个循环。。。以上换行是自动换的,中间并无换行符。。。
nightfallrove
2004-08-10
打赏
举报
回复
过滤IP地址的正则表达式:
((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])
这个表达式为什么在“54.11.154 .192.168.52.0”这个测试数据里能把
54.11.154 也当做IP地址匹配出来。。。也就是说在这个测试数据里面能找到两个
IP地址。。。。我实现想不出我的表达式哪里错了。。。
程序代码如下 ipcount
awk --posix '{
while(match($0, /((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])/))
{
printf"%s\n", substr($0, RSTART, RLENGTH)
$0=substr($0, RSTART+RLENGTH)
}
}' $1
当执行ipcount testip//testip中的数据为54.11.154 .192.168.52.0时居然会输出两个IP地址。。。。超级郁闷。。。
nightfallrove
2004-08-08
打赏
举报
回复
楼上,不是这个问题,我在程序里面是循环匹配的。。
54.11.154 .192.168.52.0在测试程序时会先匹配一个54.11.154 做为一个IP
接着又匹配192.168.52.0也就是说匹配了两个IP地址,,不是说匹配了一个就把这一
行显示出来。。。
谢谢了
zgxbliss
2004-08-07
打赏
举报
回复
原因是这样的,由于IP后半部分“192.168.52.0”符合你写的正则表达式,故能匹配通过,你在你的正则表达式开头加上“^”末尾加上“$”就没有问题了
jojo_chou
2004-08-06
打赏
举报
回复
((2[0-5][0-5]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(2[0-5][0-5]|1[0-9][0-9]|[1-9]?[0-9])
你必须知道的495个C语言问题
6.9 有人跟我讲,数组不过是常指针。这样讲准确吗? 6.10 我还是很困惑。到底指针是一种数组,还是数组是一种指针? 6.11 我看到一些“搞笑”的代码,包含5["abcdef"]这样的“
表达式
”。这为什么是合法的C语言...
tcpdump高级
过滤
表达式
- Match any traffic involving 192.168.1.1 as destination or source ...不区分源地址和目的地址,
过滤
IP - As soure only # tcpdump -i eth1 src host 192.168.1.1
过滤
源地址 - As destinati
tcpdump的基本用法之
过滤
表达式
上篇博客写了tcpdump选项的用法, 这篇博客我们来看一下
过滤
表达式
。
过滤
表达式
的man手册:man pcap-filter tcpdump在使用
过滤
表达式
时,如有用了shell的通配符,需要用单引号引起来。 情形1:只抓udp的包 #...
正则
表达式
(RegularExpressions)
正则
表达式
是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“
规则
字符串”,这个“
规则
字符串”用来表达对字符串的一种
过滤
逻辑。 1.2、正则
表达式
可以做什么 给定...
正则
表达式
总结
正则
表达式
简介 正则
表达式
中的字符 元字符详解 常用正则
表达式
实例 正则
表达式
的匹配过程 正则
表达式
中的标志位-flag ...正则
表达式
(Regluar Expressions)又称
规则
表达式
,这个概念最初是由Unix中.
Linux/Unix社区
23,114
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章