非常重要的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基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
php google或baidu分页代码
Nov 26 PHP
YII路径的用法总结
Jul 09 PHP
以文件形式缓存php变量的方法
Jun 26 PHP
刷新PHP缓冲区为你的站点加速
Oct 10 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
Nov 04 PHP
CodeIgniter基于Email类发邮件的方法
Mar 29 PHP
Yii实现简单分页的方法
Apr 29 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 PHP
laravel中的一些简单实用功能
Nov 03 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 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
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
php生成excel列序号代码实例
2013/12/24 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
webpack4的迁移的使用方法
2018/05/25 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
JavaScript之解构赋值的理解
2019/01/30 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
2019/10/22 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
python实现文件路径和url相互转换的方法
2015/07/06 Python
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
职业生涯规划书前言
2014/04/15 职场文书
高三学生评语大全
2014/04/25 职场文书
亚运会口号
2014/06/20 职场文书
保险公司演讲稿
2014/09/02 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
教师党员个人总结
2015/02/10 职场文书
2015年高三教学工作总结
2015/07/21 职场文书