非常重要的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
header()函数使用说明
Nov 23 PHP
php中$this-&amp;gt;含义分析
Nov 29 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
May 07 PHP
PHP中去掉字符串首尾空格的方法
May 19 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
Jan 07 PHP
PHP实现适用于文件内容操作的分页类
Jun 15 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
Sep 22 PHP
php显示页码分页类的封装
Jun 08 PHP
PHP判断一个变量是否为整数、正整数的方法示例
Sep 11 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
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
2015/05/12 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
jquery随意添加移除html的实现代码
2011/06/21 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
JS实现微信摇一摇原理解析
2017/07/22 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
2019/05/06 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
python3调用windows dos命令的例子
2019/08/14 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
高中英语教学反思
2014/02/04 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
法定代表人授权委托书
2014/09/19 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
工作检讨书怎么写
2014/10/10 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
郭明义电影观后感
2015/06/08 职场文书
vue中的可拖拽宽度div的实现示例
2022/04/08 Vue.js