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脚本的10个技巧(2)
Oct 09 PHP
php4的session功能评述(三)
Oct 09 PHP
php 三维饼图的实现代码
Sep 28 PHP
PHP教程 预定义变量
Oct 23 PHP
PHP中鲜为人知的10个函数
Feb 28 PHP
ThinkPHP模板判断输出Empty标签用法详解
Jun 30 PHP
PHP中使用TCPDF生成PDF文档实例
Jul 01 PHP
Yii使用技巧大汇总
Dec 29 PHP
composer.lock文件的作用
Feb 03 PHP
thinkPHP模板中函数的使用方法示例
Nov 30 PHP
PHP 二维array转换json的实例讲解
Aug 21 PHP
laravel dingo API返回自定义错误信息的实例
Sep 29 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 前一天或后一天的日期
2008/06/28 PHP
PHP中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
yii实现CheckBox复选框在同一行显示的方法
2014/12/03 PHP
微信自定义分享php代码分析
2016/11/24 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
JS跨域问题详解
2014/11/25 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
详解Vue源码学习之callHook钩子函数
2018/07/25 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
python实现文件名批量替换和内容替换
2014/03/20 Python
python基础教程之序列详解
2014/08/29 Python
Python模拟登录12306的方法
2014/12/30 Python
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
Python实现命令行通讯录实例教程
2016/08/18 Python
python中requests库session对象的妙用详解
2017/10/30 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
Django Haystack 全文检索与关键词高亮的实现
2020/02/17 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
课程设计心得体会
2013/12/28 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL