PHP下常用正则表达式整理


Posted in PHP onOctober 26, 2010

--------------------------------------------------------- 正则收藏

手机号码:
$mode = "/^1[358]\d{9}/";

邮箱地址:
$mode = "/^[a-z][-_\.]?[a-z\d]*@[a-z0-9]+[\.][a-z]{2,4}/i";

---------------------------------------------------------- 正则基础

$mode = "/^1[358]\d{9}/i";
匹配模块必须以 / / 开始和结束,第二个 / 后可以加模式修正符

原子
①a-z A-Z _ 0-9 //最常见的字符
②(abc) //用圆括号括起来起来的单元符号
③[abcs] [^abd] //用方括号括起来的原子表,
原子表中的^代表排除或相反内容

\d 包含所有数字[0-9]
\D 除所有数字外[^0-9]
\w 包含所有英文字符[a-zA-Z_0-9]
\W 除所有英文字符外[^a-zA-Z_0-9]
\s 包含空白区域如回车、换行、分页等 [\f\n\r]

元字符
* 匹配前一个内容的0次1次或多次
+ 1次或多次
? 0次或1次
. 代表任意一个字符(除了回车换行)
| 相当与php的 || (“或”的意思)
^ 强制匹配字符串首部内容
$ 强制匹配字符串尾部内容
[^abc] 匹配除了a或b或c之外的内容
\b 匹配单词边界,边界可以是空格或者特殊符号
\B 匹配除带单词边界以外的内容
{m} 匹配前一个内容的重复次数为M次
{m,} 匹配前一个内容的重复次数大于等于M次
{m,n} 匹配前一个内容的重复次数M次到N次
( ) 整体匹配,并放入内存,可使用\\1 或 \\2 …依次获取

优先级:依次降低
( ) 圆括号因为是内存处理所以最高
* ? + { } 重复匹配内容其次
^ $ \b 边界处理第三
| 条件处理第四
最后按照运算顺序计算匹配

常用修正符: $mode = "/正则/U";
i 正则内容在匹配时候不区分大小写(默认是区分的)
m 在匹配首内容或者尾内容时候采用多行识别匹配
S 将回车转化为空格
x 忽略正则中的空白
A 强制从头开始匹配
D 强制$匹配尾部无任何内容 \n
U 禁止贪婪匹配,只跟踪到最近的一个匹配符并结束,
常用在采集程序上的正则表达式

应用
preg_match_all ( string pattern, string subject, array matches [, int flags] )
截取比较详细的内容,采集网页,分析文本
preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
提示 1、替换内容可以是一个正则也可以是数组正则
2、替换内容可以通过修正符e来解决替换执行内容
preg_split ( string pattern, string subject [, int limit [, int flags]] )
通过正则表达式来切割相关内容,类似之前学过的explode切割函数,但explode
只能按照一种方式切割有局限性。
------------------------------------------------- 调试代码
[code]
<?php
$mode = "/^[a-z][-_\.]?[a-z\d]*@[a-z0-9]+[\.][a-z]{2,4}/i";
$str = "a12345@3water.com";
echo $str.'<hr>';
if(preg_match($mode, $str, $arr)){
echo 'succeed -- <font color=red>'.$arr[0];
}else{
echo 'failed';
}
?>
[code]

PHP 相关文章推荐
PHP简单系统查询模块代码打包下载
Jun 07 PHP
php中防止伪造跨站请求的小招式
Sep 02 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 PHP
采用ThinkPHP中F方法实现快速缓存实例
Jun 13 PHP
PHP base64编码后解码乱码的解决办法
Jun 19 PHP
初识laravel5
Mar 02 PHP
PHP时间处理类操作示例
Sep 05 PHP
PHP count()函数讲解
Feb 03 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 PHP
XAMPP升级PHP版本实现步骤解析
Sep 04 PHP
php实现简单四则运算器
Nov 29 PHP
PHP加MySQL消息队列深入理解
Feb 27 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
Oct 25 #PHP
微盾PHP脚本加密专家php解密算法
Sep 13 #PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
Oct 25 #PHP
php正则过滤html标签、空格、换行符的代码(附说明)
Oct 25 #PHP
PHP 强制下载文件代码
Oct 24 #PHP
php下网站防IP攻击代码,超级实用
Oct 24 #PHP
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
Oct 22 #PHP
You might like
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
原生javascript兼容性测试实例
2013/07/01 Javascript
jquery实现metro效果示例代码
2013/09/06 Javascript
checkbox选中与未选中判断示例
2014/08/04 Javascript
js树插件zTree获取所有选中节点数据的方法
2015/01/28 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
Vue的轮播图组件实现方法
2018/03/03 Javascript
vuex 的简单使用
2018/03/22 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
JS根据json数组多个字段排序及json数组常用操作
2019/06/06 Javascript
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
js实现小星星游戏
2020/03/23 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
python通过线程实现定时器timer的方法
2015/03/16 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
适合Python初学者的一些编程技巧
2020/02/12 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
HTML5实践-图片设置成灰度图
2012/11/12 HTML / CSS
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
关于人生的感言
2014/01/17 职场文书
教师求职自荐信
2014/03/09 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
爱心捐书活动总结
2014/07/05 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python