PHP笔记2:PHP 7 中的正则表达式
来源:互联网 发布:无限接收器软件下载 编辑:程序博客网 时间:2024/06/05 17:53
我是在windows10下安装了PHP 7.0.10 ,其实我感觉如果是新学PHP的话(比如我= =),建议安装PHP 5,因为现在的参考书、mooc等基本是以PHP 5为例进行教学,而PHP 5 到 PHP 7 还是有一定区别的。
参考手册:http://php7.phpxy.com/index.html
先说一下正则表达式规则。
正则表达式由普通字符和元字符组成,其中元字符用于模式匹配,下表列出了元字符的含义说明。
/* 感觉用markdown 写表格好心累啊 :( */
度娘可以帮你找到更多更详细的关于正则表达式的语法分析,这点是我总结的简洁版,个人感觉基本够用了~
在真正实践时,我照着书上给的例子,写了一个关于邮箱地址的验证
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>正则表达式</title></head><body><?php $email = "123@123.com"; if(!ereg("^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_]+\.+[a-zA-Z0-9.]+$",$email)){ echo "这不是一个有效的email地址"; exit; }?></body></html>
其中,^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_]+\.+[a-zA-Z0-9.]+$ 这个大家可以记下来,基本邮箱的正则表达式都是这个[嘿嘿嘿]
BUT!!!出错了!
PHP Fatal error: Uncaught Error: Call to undefined function ereg() in……
ereg()这个书上就是这么写这么用的函数竟然未定义!!?难道PHP配置时出错了?
不,是它被PHP 7移除了!!!
在百度之后,我选择了用preg_match()这个函数来替代ereg()
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>正则表达式</title></head><body><?php $email = "123@123.com"; if(!preg_match("^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_]+\.+[a-zA-Z0-9.]+$",$email)){ echo "这不是一个有效的email地址"; exit; }?></body></html>
BUT!!!又出错了!
PHP Warning: preg_match(): No ending delimiter ‘^’ found in ……
我有点懵,‘^’这个元字符是为了匹配一个字符串的开始,为什么还要在结尾加一个!!?
在求助度娘后,找到了原因:preg_match 的正则表达式需要有定界符(ereg()则不需要),即除了要有“”双引号外,还需要要用/ /定义正则表达式的边界。
修改完种种因为PHP版本带来的bug,终于成功通过!
正则表达式是功能强大的对文本进行处理的技术,希望大家可以多多学习,多多实践,有问题及时解决~
- PHP笔记2:PHP 7 中的正则表达式
- PHP中的正则表达式
- PHP中的正则表达式
- PHP 中的正则表达式
- php中的正则表达式
- PHP中的正则表达式
- PHP 中的正则表达式
- php中的正则表达式
- php中的正则表达式
- PHP中的正则表达式
- PHP中的正则表达式
- php中的正则表达式
- PHP中的正则表达式
- php正则表达式笔记
- php正则表达式笔记
- php正则表达式笔记
- php学习笔记6--php中的正则表达式函数
- PHP中的正则表达式函数
- Error:File path too long on Windows,keep below 240 characters 解决
- 分布式一致性原理学习笔记(2)
- 工作第十周:干货太多脑子不够用怎么办
- c语言中的sizeof(面试、笔试常考)
- unity3D——登录界面
- PHP笔记2:PHP 7 中的正则表达式
- python扩展C
- bootStarp Tab Collapse
- list集合的遍历3种方法
- LeetCode: Decode String
- 表单元素验证
- React(4. 1)--数据流(理论篇)
- Comparable接口
- Android温习之路Day4java基础4