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 相关文章推荐
自己动手做一个SQL解释器
Oct 09 PHP
php下删除字符串中HTML标签的函数
Aug 27 PHP
PHP二维数组排序的3种方法和自定义函数分享
Apr 09 PHP
Yii Framework框架获取分类下面的所有子类方法
Jun 20 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
php上传文件并显示上传进度的方法
Mar 24 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
Dec 15 PHP
php删除数组中重复元素的方法
Dec 22 PHP
php 变量引用与变量销毁机制详细介绍
Dec 05 PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 PHP
让你的PHP,APACHE,NGINX支持大文件上传
Mar 09 PHP
PHP新手指南
Apr 01 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
windows下配置php5.5开发环境及开发扩展
2014/12/25 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
JavaScript 原型链学习总结
2010/10/29 Javascript
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
BootStrap表单控件之文本域textarea
2017/05/23 Javascript
详解vue过滤器在v2.0版本用法
2017/06/01 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
vue计算属性及使用详解
2018/04/02 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
Vue+Element自定义纵向表格表头教程
2020/10/26 Javascript
[47:50]Secret vs VP 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
制药工程专业个人求职自荐信
2014/01/25 职场文书
文明学生事迹材料
2014/01/29 职场文书
幼儿园毕业寄语
2014/04/03 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
2014年审计人员工作总结
2014/12/19 职场文书
淘宝客服专员岗位职责
2015/04/07 职场文书
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
idea搭建可运行Servlet的Web项目
2021/06/26 Java/Android
Python基于百度AI实现抓取表情包
2021/06/27 Python
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android