概述
我是在windows10下安装了PHP 7.0.10 ,其实我感觉如果是新学PHP的话(比如我= =),建议安装PHP 5,因为现在的参考书、mooc等基本是以PHP 5为例进行教学,而PHP 5 到 PHP 7 还是有一定区别的。
参考手册:http://php7.phpxy.com/index.html
先说一下正则表达式规则。
正则表达式由普通字符和元字符组成,其中元字符用于模式匹配,下表列出了元字符的含义说明。
元字符 | 描述 | 示例 |
---|---|---|
. | 匹配任意单个字符。 | 正则表达式 a.c 可以匹配 aac,a2c,a#c 等 |
$ | 匹配字符串的结尾。 | 正则表达式 abc$ 可以匹配最后以 abc 结尾的字符串 |
^ | 匹配字符串的开始。 | 正则表达式 ^what 可以匹配以 what 开始的字符串 |
* | 匹配 * 前面的子串零次或多次 | 正则表达式 abc*d 可以匹配 abcd、aad、bd、bcd、d等字符串 |
+ | 匹配 * 前面的子串一次或多次 | 正则表达式 abc*d 可以匹配 abcd、aad、bd、bcd等字符串 |
{i} | 匹配指定个数的字符 | 正则表达式 [0-9]{11} 可以匹配由11个数字字符组成的字符串 |
{i1,2} | 匹配个数在i1到i2范围的字符 | 正则表达式 [0-9]{8,11} 可以匹配由8-11个数字字符组成的字符串 |
转义符,将字符串中的元字符当作普通的字符匹配 | 正则表达式 *a 匹配 *a | |
[ ] | 匹配[]中的任何一个字符 | 正则表达式 [ab]c 可以匹配 ac、bc |
[c1-c2] | 在[]中使用连字符‘-’指定字符的区间 | 正则表达式 [0-9] 可以匹配任何数字字符 |
[^c1-c2] | 匹配除了[]中的任意字符 | 正则表达式 [^0-9] 匹配除了数字字符之外的任意字符 |
( ) | 用于定义匹配的子模式 | |
| | 从多个选项中选择一个进行匹配 | 正则表达式 (a|b|c) 可以匹配 a、b、c |
/* 感觉用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笔记2:PHP 7 中的正则表达式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复