非常重要的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 相关文章推荐
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
PHP网站基础优化方法小结
Sep 29 PHP
收藏的PHP常用函数 推荐收藏保存
Feb 21 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
Nov 10 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
Dec 17 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
Dec 18 PHP
php实现CSV文件导入和导出
Oct 24 PHP
微信支付开发告警通知实例
Jul 12 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
Aug 04 PHP
php/JS实现的生成随机密码(验证码)功能示例
Jun 06 PHP
php输出控制函数和输出函数生成静态页面
Jun 27 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中iconv函数使用方法
2008/05/24 PHP
php数组去重复数据示例
2014/02/25 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
详解Vue文档中几个易忽视部分的剖析
2018/03/24 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
详解小程序退出页面时清除定时器
2019/04/28 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
python中的turtle库函数简单使用教程
2018/07/23 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
国贸专业个人求职信范文
2014/01/08 职场文书
总经理司机职责
2014/02/02 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
索赔员岗位职责
2015/02/15 职场文书
团组织推荐意见
2015/06/05 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
大学生党课心得体会
2016/01/07 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python
python字典的元素访问实例详解
2021/07/21 Python
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle