非常重要的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 相关文章推荐
初学者入门:细述PHP4的核心Zend
Sep 05 PHP
PHP简介
Oct 09 PHP
PHP操作XML作为数据库的类
Dec 19 PHP
用Simple Excel导出xls实现方法
Dec 06 PHP
php配合jquery实现增删操作具体实例
Dec 12 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
Jan 05 PHP
php 微信开发获取用户信息如何实现
Dec 13 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
PHP多进程简单实例小结
Nov 09 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
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中几个常用的魔术常量
2012/02/23 PHP
PHP服务器页面间跳转实现方法
2012/08/02 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
JS实现双击屏幕滚动效果代码
2015/10/28 Javascript
属于你的jQuery提示框(Tip)插件
2016/01/20 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
python处理Excel xlrd的简单使用
2017/09/12 Python
Python中交换两个元素的实现方法
2018/06/29 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
python 实现矩阵填充0的例子
2019/11/29 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
阿玛尼美国官方网站:Armani.com
2016/11/25 全球购物
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
皇家道尔顿官网:Royal Doulton
2017/12/06 全球购物
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
会话Bean的种类
2013/11/07 面试题
园林技术个人的自我评价
2014/01/08 职场文书
应届毕业生自荐书
2014/06/18 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
增值税发票丢失证明
2015/06/19 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书