PHP下常用正则表达式整理_php技巧

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

手机号码:
$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@jb51.net";
echo $str.'<hr>';
if(preg_match($mode, $str, $arr)){
echo 'succeed -- <font color=red>'.$arr[0];
}else{
echo 'failed';
}
?>
[code]

时间: 2024-08-01 06:47:06

PHP下常用正则表达式整理_php技巧的相关文章

PHP下常用正则表达式整理

--------------------------------------------------------- 正则收藏 手机号码: $mode = "/^1[358]\d{9}/"; 邮箱地址: $mode = "/^[a-z][-_\.]?[a-z\d]*@[a-z0-9]+[\.][a-z]{2,4}/i"; ---------------------------------------------------------- 正则基础 $mode = &q

php 常用类整理_php技巧

图表库 下面的类库可以让你很简单就能创建复杂的图表和图片.当然,它们需要GD库的支持. pChart - 一个可以创建统计图的库. Libchart - 这也是一个简单的统计图库. JpGraph - 一个面向对象的图片创建类. Open Flash Chart - 这是一个基于Flash的统计图. RSS 解析 解释RSS并是一件很单调的事情,不过幸好你有下面的类库可以帮助你方便地读取RSS的Feed. MagpieRSS - 开源的PHP版RSS解析器,据说功能强大,未验证. SimpleP

PHP 常用时间函数资料整理_php技巧

php常用的时间函数 测试环境:php5.3.29 unix时间戳(从Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数.).以下简称时间戳. 返回某一时间的时间戳. time(); 获取当前本机时间的时间戳. mktime(时,分,秒,月,日,年); //从右向左可以省略,省略到的参数用本机时间替换,比如省略了最后日和年就应用当前时间 22日 2016年. //年可写两位或四位数字.两位时0-69 对应于 2000-2069,70-100 对应于 1970

PHP常用正则表达式集锦_php实例

平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用:  "^\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?\d+$" //整数 "^\d+(\.\d+)?$" //非负浮点数(正

非常实用的PHP常用函数汇总_php技巧

本文实例总结了一些在php应用开发中常用到的函数,这些函数有字符操作,文件操作及其它的一些操作了,分享给大家供大家参考.具体如下: 1.PHP加密解密 PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加密和解密. 复制代码 代码如下: function encryptDecrypt($key, $string, $decrypt){     if($decrypt){         $decrypted = rtrim(m

PHP的几个常用加密函数_php技巧

MD5加密: string md5 ( string $str [, bool $raw_output = false ] ) 1.md5()默认情况下以 32 字符十六进制数字形式返回散列值,它接受两个参数,第一个为要加密的字符串,第二个为raw_output的布尔值,默认为false,如果设置为true,md5()则会返回原始的 16 位二进制格式报文摘要 2.md5()为单向加密,没有逆向解密算法,但是还是可以对一些常见的字符串通过收集,枚举,碰撞等方法破解 <?php $username

javascript常用正则表达式汇总_javascript技巧

javascript常用正则表达式汇总 /** * 检验各种规则 * @param str 检验的内容 * @param cType 预设的检验规则 字符串[ * empty, 检验是否为空 * telphone, 座机手机号码 * allphone, 所有手机号码 * ydphone, 移动手机号码 * ltphone, 联通手机号码 * dxphone, 电信手机号码 * email, 邮箱 * url, 网址 * cn, 汉字 * image, 图片格式 * emscode, 邮政编码 *

php邮箱地址正则表达式验证_php技巧

我们最经常遇到的验证,就是电子邮件地址验证.网站上常见.各种网页脚本也都常用"正则表达式"(regular expression)对我们输入的电子邮件地址进行验证,判断是否合法.有的还能分解出用户名和域名.现在用PHP语言实现一下电子邮件地址验证程序,用的是PHP正则表达式库. 源代码如下: <?php header ( "Content-Type: text/html; charset=UTF-8" ); $reply = ""; if

常用DOM整理_javascript技巧

前言: html为document搭建了一棵DOM树,这棵树就是有一系列Node节点所构成的.他为我们定义了文档的结构. Node类型: Node.ELEMENT_NODE(1);      //元素节点较常用 Node.ATTRIBUTE_NODE(2);    //属性节点较常用 Node.TEXT_NODE(3);          //文本节点较常用 Node.CDATA_SECTION_NODE(4); Node.ENTITY_REFERENCE_NODE(5); Node.ENTIT