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
PHP数据类型的总结分析
Jun 13 PHP
非常实用的PHP常用函数汇总
Dec 17 PHP
php中解析带中文字符的url函数分享
Jan 20 PHP
PHP 常用的header头部定义汇总
Jun 19 PHP
PHP常用技巧汇总
Mar 04 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
php mysql操作mysql_connect连接数据库实例详解
Dec 26 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 PHP
PHP设计模式之适配器模式定义与用法详解
Apr 03 PHP
laravel 解决路由除了根目录其他都404的问题
Oct 18 PHP
PHP+MySql实现一个简单的留言板
Jul 19 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常用ODBC函数集(详细)
2013/06/24 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
php实现支付宝当面付(扫码支付)功能
2018/05/30 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
微信小程序实现长按删除图片的示例
2018/05/18 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
node后端服务保活的实现
2019/11/10 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
用vue写一个日历
2020/11/02 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
在Python中用split()方法分割字符串的使用介绍
2015/05/20 Python
人机交互程序 python实现人机对话
2017/11/14 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
公司业务主管岗位职责
2013/12/07 职场文书
食品安全检查制度
2014/02/03 职场文书
人民教师的自我评价分享
2014/02/21 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
民主评议政风行风整改方案
2014/09/17 职场文书
房屋租赁协议书
2014/10/18 职场文书
公司行政助理岗位职责
2015/04/11 职场文书