1. 正则表达式的主要作用是:分割、匹配、查找、替换
2. 正则表达式中包括的元素:原子(普通字符:a-z A-Z 0-9 、原子表、转义字符),元字符(有特殊功能的字符),模式修正符(系统内置部分字符 i 、m、S、U…)
3. 转义字符:\d包含所有数字[0-9],\D除所有数字外[^0-9],\w包含所有字符(大小写英文字母、下划线、数字) [a-zA-Z_0-9],\W除所有字符(大小写英文字母、下划线、数字)外 [^a-zA-Z_0-9],\s包含空白区域如回车、换行、分页等 [\f\n\r]。
4. * 匹配任意次;+ 匹配1次或多次;?匹配0次或1次;.匹配任意次但不包含回车换行;|选择匹配(或者);^匹配开头(方括号中表示非);$匹配尾部;{m}匹配前一个内容的重复次数为m次;{m,}匹配前一个内容的重复次数大于等于m次;{m,n}匹配前一个内容的重复次数m次到n次;( ) 合并整体匹配,并放入内存,可使用\1 \2…依次获取。
5. 模式修正符: 【/正则/U 】 小写i:不区分大小写;小写m:匹配首内容或尾内容时采用多行识别匹配;小写s:将转义回车取消视为单行匹配;小写x:忽略正则中的空白;大写A:强制从头开始匹配;大写D:强制$匹配尾部无任何内容;大写U:禁止贪婪匹配,只跟踪到最近的一个匹配符并结束,常用在采集程序。
6. Perl正则表达式函数:
① preg_grep($mode,$str) //匹配查找,返回一个数组;
② preg_match($mode,$str,$return) //在字符串中查找匹配项,返回一个数组。
③ preg_match_all($mode,$str,$return [,int flags])
④ preg_split($mode,$str [,int limit 切割多少次 [,int flags] ] ) //使用正则表达式分割字符串,并将结果以数组的形式返回(类似explode)。
⑤ preg_replace($mode,$replacement,$str [,int limit 匹配多少次]) //查找和替换子字符串(类似str_replace)
⑥ preg_quote($str) //在每个正则表达式的特殊字符前面加入一个转义字符(反斜线“\”),正则表达式的特殊字符包括:.\\+*?[^]$(){}=!<>|:

◆ 【经典收藏的正则表达式】:
1.删除一对中括号内的内容:$str = "abc[url]123[/url]"; $str = preg_replace('/\[url\S*\[\/url\]/', '', $str); echo $str; //输出:abc123
2.匹配网页源代码中的图片路径:$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/"; preg_match_all($pattern,$str,$match); //$match[1][0]就是图片的路径
3.获取当前页面的所有超链接:$pat = '/<a(.*?)href="(.*?)"(.*?)>(.*?)<\/a>/i'; preg_match_all($pat, $str, $m); //print_r($m);
4.根据网页源代码的某个div提取需要的数字:$pat = '/<div class="allnum">.+?<\/div>/'; preg_match_all($pat, $str, $res); preg_match_all('/\d+/', $res[0][0], $nums); //print_r($nums[0][0]);
5.PHP 匹配多对中括号中的内容:$string = "这是[3]def[25]我的[26] "; preg_match_all('/\[([a-z0-9]+)\]/', $string, $matches); //print_r($matches);
6.匹配所有大括号里面的内容: preg_match_all("/{(.*)}/U","sdf{title}dghdg{author} ",$arr); print_r($arr);
7.过滤网页上的所有script标记及其内容:[JS]$pat = "'<script[^>]*?>.*?</script>'si";[HTML]$pat = "'<[\/\!]*?[^<>]*?>'si";[空白字符]$pat = "'([\r\n])[\s]+'"; (替换)$res = preg_replace($pat, "", $str);
8.匹配邮件:$pregEmail = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i"; $res = preg_match($pregEmail,$email);
9.匹配手机号:$preg = "/^1(3|5|8)\d{9}$/"; $res = preg_match($preg,$mobile);

PHP正则表达式的使用的更多相关文章

  1. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  2. Python高手之路【五】python基础之正则表达式

    下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...

  3. C# 正则表达式大全

    文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...

  4. C#基础篇 - 正则表达式入门

    1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...

  5. JavaScript正则表达式,你真的知道?

    一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...

  6. Python 正则表达式入门(中级篇)

    Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...

  7. 【JS基础】正则表达式

    正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...

  8. JavaScript 正则表达式语法

    定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...

  9. [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)

    数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...

  10. JS中给正则表达式加变量

    前不久同事询问我js里面怎么给正则中添加变量的问题,遂写篇博客记录下.   一.字面量 其实当我们定义一个字符串,一个数组,一个对象等等的时候,我们习惯用字面量来定义,例如: var s = &quo ...

随机推荐

  1. ios-NSStringFromCGRect直接输出控件的frame

  2. SQLSERVER:Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.

    背景: 在最近开发中遇到一个问题,对一个数据库进行操作时,我采用64个并行的任务每个任务保证一个数据库连接对象:但是每个任务内部均包含有24个文件需要读取,在读取文件之后,我们需要快速将这24个文件批 ...

  3. C++Primer 第十九章

    //1.控制内存分配: //A:某些应用程序对内存分配有特殊的需求,因此我们无法将标准内存管理机制直接应用于这些程序.它们常常需要自定义内存分配的细节,比如使用关键字new将对象放置在特定的内存空间中 ...

  4. 显示和隐藏Mac下的 隐藏文件

    显示:defaults write com.apple.finder AppleShowAllFiles -bool true隐藏:defaults write com.apple.finder Ap ...

  5. Nginx简单配置

    Nginx 配置文件结构如果你下载好啦,你的安装文件,不妨打开 conf 文件夹的 nginx.conf 文件,Nginx 服务器的基础配置,默认的配置也存放在此.在 nginx.conf 的注释符号 ...

  6. 转:Beautiful Soup

    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时 ...

  7. org.openqa.selenium.WebDriverException: f.QueryInterface is not a function Command duration or timeout:

    今天偶遇一个问题,运行项目时,发现这个问题: org.openqa.selenium.WebDriverException: f.QueryInterface is not a functionCom ...

  8. C++之路进阶——codevs4655(序列终结者)

    4655 序列终结者  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master      题目描述 Description 网上有许多题,就是给定一个序列,要你支持几 ...

  9. Android -- 自定义View小Demo,关于Path类的使用(一)

    1,在我们知道自定义view中onDraw()方法是用于绘制图形的,而Path类则是其中的一个重要的类,如下图效果: 代码也没有什么难度,直接贴出来吧 @Override protected void ...

  10. C# 把字符串类型日期转换为日期类型

    方法一:Convert.ToDateTime(string) string格式有要求,必须是yyyy-MM-dd hh:mm:ss ================================== ...