获取ip的正则表达式
4-7具体的答案是什么呢?
还有我匹配ip的正则是这个(1\d{1,2}|2[0-5]{2})\.(\d{1,2}|1\d{1,2}|2[0-5]{2})\.(\d{1,2}|1\d{1,2}|2[0-5]{2})\.((\d{1,2})|(1\d{1,2})|(2[0-5]{2}))但是为什么情况是这样,下图,请老师帮忙看看哪里出问题了
源自:正则表达式
4-8 邮箱正则验证
34
收起
正在回答
2回答
你好,因为(\d{1,2})只会匹配到两位数字,而|是或的关系,当前边匹配成功时,则不会再进行后边的匹配,因此只匹配到了两位数字,
你可以使用(1\d{1,2}|2[0-5]{2})\.(\d{1,2}|1\d{1,2}|2[0-5]{2})\.(\d{1,2}|1\d{1,2}|2[0-5]{2})\.(\d{1,2})匹配,会发现与你此时的结果是相同的,是因为|之后的程序并没有执行。
这种问题没有标准答案的,在百度上搜也是各式各样呢
你可以试试这个(0|1\d{1,2}|2[0-5]{2})\.(0|1\d{1,2}|2[0-5]{1,2})\.(0|1\d{1,2}|2[0-5]{1,2})\.(0|1\d{1,2}|2[0-5]{1,2})根据你的改的
imooc的铁粉
2018-02-08 09:47:04
你好,在正则表达式在线匹配的页面上面是全局匹配的,
建议参考
<?php $pattern='/((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/'; $subject=" '10.0.0.0', '255.255.255.255', '128.12.187.12', '187.234.213.231', '289.243.2413.567' "; $result=preg_match_all($pattern,$subject,$match); //print_r($result); print_r($match); ?>
如果解决您的问题请采纳,祝学习愉快!
PHP常用技术与ThinkPHP5框架开发
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星