我是靠谱客的博主 活泼酸奶,最近开发中收集的这篇文章主要介绍PHP笔记2:PHP 7 中的正则表达式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  我是在windows10下安装了PHP 7.0.10 ,其实我感觉如果是新学PHP的话(比如我= =),建议安装PHP 5,因为现在的参考书、mooc等基本是以PHP 5为例进行教学,而PHP 5 到 PHP 7 还是有一定区别的。
  参考手册:http://php7.phpxy.com/index.html
  php迁移
  先说一下正则表达式规则。
  正则表达式由普通字符和元字符组成,其中元字符用于模式匹配,下表列出了元字符的含义说明。

元字符描述示例
.匹配任意单个字符。正则表达式 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移除了!!!
removed
 
在百度之后,我选择了用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 中的正则表达式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部