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 相关文章推荐
用户的详细注册和判断
Oct 09 PHP
我的论坛源代码(六)
Oct 09 PHP
PHPMailer 中文使用说明小结
Jan 22 PHP
PHP编码转换
Nov 05 PHP
PHP队列用法实例
Nov 05 PHP
CodeIgniter中使用Smarty3基本配置
Jun 29 PHP
PHP自定义函数格式化json数据示例
Sep 14 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
thinkphp实现附件上传功能
May 26 PHP
PHP连接MySQL数据库并以json格式输出
May 21 PHP
PHP simplexml_import_dom()函数讲解
Feb 03 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 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实现获取FLV文件的时间
2015/02/10 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
php获取客户端IP及URL的方法示例
2017/02/03 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
JavaScript打字小游戏代码
2011/12/26 Javascript
javascript倒计时功能实现代码
2012/06/07 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
vue.js实现二级菜单效果
2019/10/19 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
python自动化之Ansible的安装教程
2019/06/13 Python
基于django2.2连oracle11g解决版本冲突的问题
2020/07/02 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
八一建军节感言
2014/02/28 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
实习班主任自我评价
2015/03/11 职场文书
酒会开场白大全
2015/06/01 职场文书
现实表现证明材料
2015/06/19 职场文书
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js