非常重要的php正则表达式详解


Posted in PHP onJanuary 04, 2016

 正则表达式是php中一个非常重要的知识点,通常用来查找和替换字符串,最常用的就是验证用户输入的信息格式是否正确,如邮件格式、电话格式等等。还有比如采集器之类的软件中,正则也是必用不可!
  现在开始来学习正则表达式的基本语法:
1.“/”是定界符,“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。同时为了正则更加灵活,引入了元字符,即“+”, “*”,以及 “?”。
(1)“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次
比如:/php+/,能够与“phpp”匹配,即字母ph后面连续出现一个或多个字母p的字符串相匹配。
(2)“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次
比如:/php*/能够与“phpddt”相匹配,即ph后面可以有0个或多个p
(3)“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。
比如:/php?/能够“pher”匹配,即phh后面可以有0个或者1个p
其他重要的元字符:

  • \s:用于匹配单个空格符,包括tab键和换行符;
  • \S:用于匹配除单个空格符之外的所有字符;
  • \d:用于匹配从0到9的数字;
  • \w:用于匹配字母,数字或下划线字符;
  • \W:用于匹配所有与\w不匹配的字符;
  • . :用于匹配除换行符之外的所有字符。

示例:/\s+/用于匹配目标对象中的一个或多个空格字符
2.定位符用于规定匹配模式在目标对象中的出现位置。常用的有“^”, “$”, “\b” 以及 “\B”
(1)“^”定位符规定匹配模式必须出现在目标字符串的开头
(2)“$”定位符规定匹配模式必须出现在目标对象的结尾
(3)\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一
(4)“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内
3.php的正则匹配模式非常灵活,可以指定某一范围 
例如:
/[A-Z]/
上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。
/[a-z]/
上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。
/[0-9]/
上述正则表达式将会与从0到9范围内任何一个数字相匹配。
/([a-z][A-Z][0-9])+/
上述正则表达式将会与任何由字母和数字组成的字符串
4.可以同时与多种模式选择匹配
如/phpddt.com|phpddt|100/可以与“phpddt.com” “phpddt” “100”相匹配
5.否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串
例如:[^phpddt]匹配除了phpddt字符外的所有东西
下面来讲讲正则表达式常用函数吧!(非常重要)

<?php 
//preg_match("正则表达式","字符串")用于在字符串中查找匹配项 
$email = "987044391@qq.com"; 
if (preg_match("/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([.a-zA-Z0-9_-])+([.a-zA-Z0-9_-]+)+([.a-zA-Z0-9_-])$/",$email)){ 
 echo '匹配成功<hr />'; 
}else { 
 echo '匹配失败<hr />'; 
} 
//preg_quote("字符串") 在每个有正则表达式语法前面加入一个转义字符即\ 
 
$str = "php点点通是一个学习php的网站,(⊙o⊙)…"; 
echo preg_quote($str); 
echo "<hr />"; 
 
//preg_split("正则","字符串")分割字符串 
$php = "+php++点点通++++是好网站"; 
$field = preg_split("/\+{1,}/",$php); 
foreach($field as $f){ 
echo $f." "; 
} 
echo "<hr />"; 
//preg_grep("正则","字符串") 与数组匹配后返回新数组 
$phpddt = array("php点点通","php100","呵呵","hahaha","phpchina"); 
$item = preg_grep("/^php/",$phpddt); 
print_r($item); 
 
echo "<hr />"; 
//preg_replace("正则","替换内容","原字符串") 很重要,很常用 
$a = "欢迎光临https://3water.com/"; //给http开头的加上超链接 
echo preg_replace("/http:\/\/(.*)\//","<a href=\"\${0}\">\${0}</a>","$a"); 
?>

以上就是本文的全部内容,希望对大家的学习php正则表达式有所帮助。

PHP 相关文章推荐
随机广告显示(PHP函数)
Oct 09 PHP
消息持续发送的完整例子
Oct 09 PHP
zend framework多模块多布局配置
Feb 26 PHP
PHPMailer发送HTML内容、带附件的邮件实例
Jul 01 PHP
PHP解码unicode编码的中文字符代码分享
Aug 13 PHP
PHP获取当前日期和时间及格式化方法参数
May 11 PHP
PHP 常用时间函数资料整理
Oct 22 PHP
微信小程序 消息推送php服务器验证实例详解
Mar 30 PHP
THINKPHP在添加数据的时候获取主键id的值方法
Apr 03 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
实例讲解PHP表单
Jun 10 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
Jan 04 #PHP
隐藏Nginx或Apache以及PHP的版本号的方法
Jan 03 #PHP
PHP 读取文本文件内容并分页显示
Jan 02 #PHP
php实现概率性随机抽奖代码
Jan 02 #PHP
php实现给一张图片加上水印效果
Jan 02 #PHP
前端必学之PHP语法基础
Jan 01 #PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
Dec 31 #PHP
You might like
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
jQuery获取css z-index在各种浏览器中的返回值
2010/09/15 Javascript
JS正则表达式验证数字代码
2014/01/28 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
js实现列表按字母排序
2020/08/11 Javascript
理解JavaScript中的Proxy 与 Reflection API
2020/09/21 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
Python如何实现爬取B站视频
2020/05/20 Python
世界上最好的足球商店:Unisport
2019/03/02 全球购物
客户代表实习人员自我鉴定
2013/09/27 职场文书
士力架广告词
2014/03/20 职场文书
财务会计大学生自我评价
2014/04/09 职场文书
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
销售人才自我评价范文
2014/09/27 职场文书
教师三严三实心得体会
2014/10/11 职场文书
品德与社会教学反思
2016/02/24 职场文书
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python