非常重要的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文件
Jan 04 PHP
简单的PHP图片上传程序
Mar 27 PHP
php面向对象全攻略 (十四) php5接口技术
Sep 30 PHP
php学习之 认清变量的作用范围
Jan 26 PHP
php中通过虚代理实现延迟加载的实现代码
Jun 10 PHP
PHP 第三节 变量介绍
Apr 28 PHP
解析php中array_merge与array+array的区别
Jun 21 PHP
解析thinkphp中的M()与D()方法的区别
Jun 22 PHP
php中读写文件与读写数据库的效率比较分享
Oct 19 PHP
一个简单的php路由类
May 29 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
Aug 17 PHP
Laravel中log无法写入问题的解决
Jun 17 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 中英文语言转换类代码
2011/08/11 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
PHP检测链接是否存在的代码实例分享
2016/05/06 PHP
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
jquery实现上传图片功能
2020/06/29 jQuery
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
js实现简单的轮播图效果
2020/12/13 Javascript
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
使用Python来开发Markdown脚本扩展的实例分享
2016/03/04 Python
Django框架实现的分页demo示例
2019/05/25 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
花园仓库建筑:Garden Buildings Direct
2018/02/16 全球购物
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
应届生求职自荐信
2014/07/04 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
民警个人对照检查剖析材料
2014/09/17 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
员工辞职信范文
2015/03/02 职场文书
房屋维修申请报告
2015/05/18 职场文书
创业计划书之溜冰场
2019/10/25 职场文书