找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4480|回复: 4

python re正则匹配边界的问题

1

主题

13

帖子

13

积分

贫民

积分
13
python奋青 发表于 2016-9-24 12:48:53 | 显示全部楼层 |阅读模式
  1. def ipFormatChk(ip_str):
  2.    pattern = r"\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"
  3.    if re.match(pattern, ip_str):
  4.       return True
  5.    else:
  6.       return False
复制代码
使用这段代码无法匹配到ip边界是什么问题?使用^$可以,\b\b不行
回复

使用道具 举报

0

主题

12

帖子

12

积分

贫民

积分
12
tt_koma 发表于 2016-9-25 22:38:36 | 显示全部楼层
python奋青 发表于 2016-9-25 16:28
字符串'192.168.136.111.11' 也是可以匹配成功的,ip网段应该是4组,但\b匹配边界没有生效 ...

\b 为单词边界位置 即 [A-Za-z0-9_]  .是可以作为边界分割单词的 所以可以匹配

点评

是的,多谢  发表于 2016-9-27 11:54
回复 支持 1 反对 0

使用道具 举报

0

主题

12

帖子

12

积分

贫民

积分
12
tt_koma 发表于 2016-9-24 22:17:13 | 显示全部楼层
>>> strip = '255.255.255.255'
>>> ipFormatChk(strip)
True
>>>
我这边测试了一下 是可以匹配的啊 你那边的字符串是什么呢,能贴出来吗?
回复 支持 反对

使用道具 举报

1

主题

13

帖子

13

积分

贫民

积分
13
python奋青  楼主| 发表于 2016-9-25 16:28:59 | 显示全部楼层
tt_koma 发表于 2016-9-24 22:17
>>> strip = '255.255.255.255'
>>> ipFormatChk(strip)
True

字符串'192.168.136.111.11' 也是可以匹配成功的,ip网段应该是4组,但\b匹配边界没有生效
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表