非常重要的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
ubuntu下编译安装xcache for php5.3 的具体操作步骤
Jun 18 PHP
php实现邮件发送并带有附件
Jan 24 PHP
PHP+javascript制作带提示的验证码源码分享
May 28 PHP
php隐藏IP地址后两位显示为星号的方法
Nov 21 PHP
为你总结一些php系统类函数
Oct 21 PHP
php获取远程图片并下载保存到本地的方法分析
Oct 08 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
Oct 20 PHP
Laravel中unique和exists验证规则的优化详解
Jan 28 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
Apr 04 PHP
php高清晰度无损图片压缩功能的实现代码
Dec 09 PHP
用Laravel轻松处理千万级数据的方法实现
Dec 25 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/01/26 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
yii实现CheckBox复选框在同一行显示的方法
2014/12/03 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
2015/04/15 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
jQuery extend()详解及简单实例
2017/05/06 jQuery
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
浅谈Python黑帽子取代netcat
2018/02/10 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
python安装本地whl的实例步骤
2019/10/12 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
爷爷追悼会答谢词
2014/01/24 职场文书
音乐器材管理制度
2014/01/31 职场文书
三年级评语大全
2014/04/23 职场文书
中央空调节能方案
2014/06/15 职场文书
单位接收函格式
2015/01/30 职场文书
孟佩杰观后感
2015/06/17 职场文书
2019销售早会主持词
2019/06/27 职场文书
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript