php中PCRE正则表达式分隔符的使用
转自:http://www.baiwar.com/post/the-use-of-php-pcre-regex-delimiter.html
在php5.3.0以前,PHP可使用两套正则表达式规则,一是IEEE制定的POSIX,另一套是PCRE的PERL兼容正则表达式规则。
在php5.3.0后,POSIX被弃用。
PCRE正则表达式需要以分隔符闭合:
1. 分隔符可以使用任意的非字母数字,非反斜线,非空的字符,如常用的正斜线(/)、hash符号(#) 以及取反符号(~)。
2. 甚至其首尾可以使用括号(如”()”、”[]”及”{}”)闭合。
3. 但若使用元字符(如+、*、^)作为分隔符,则该正则表达式中不能使用该分隔符(转义的除外)。
实例:
$url="http://baiwar.com/#";
//使用反斜杠'/'作为分隔符
preg_match('/^http:\/\/[a-z]+\.[a-z]{2,6}\/#/',$url,$match);
echo "//使用反斜杠'/'作为分隔符<br>";
echo "preg_match('/^http:\/\/[a-z]+\.[a-z]{2,6}\/#/',$url,$match);的输出结果为:<br>";
echo $match[0]."<hr>";
//使用反斜杠'#'作为分隔符(反斜杠可以不使用转义符,但其中的'#'需要使用转义符)
preg_match('#^http://[a-z]+\.[a-z]{2,6}/\##',$url,$match);
echo "//使用反斜杠'#'作为分隔符(反斜杠可以不使用转义符,但其中的'#'需要使用转义符)<br>";
echo "preg_match('#^http://[a-z]+\.[a-z]{2,6}/\##',$url,$match);的输出结果为:<br>";
echo $match[0]."<hr>";
//使用反斜杠'^'作为分隔符(反斜杠可以不使用转义符),元字符不能使用'^',否则报错
preg_match('^http://[a-z]+\.[a-z]{2,6}/#^',$url,$match);
echo "//使用反斜杠'^'作为分隔符(反斜杠可以不使用转义符),元字符不能使用'^',否则报错<br>";
echo "preg_match('^http://[a-z]+\.[a-z]{2,6}/#^',$url,$match);的输出结果为:<br>";
echo $match[0]."<hr>";
//使用反斜杠'[]'作为分隔符(反斜杠可以不使用转义符)
preg_match('[^http://[a-z]+\.[a-z]{2,6}/#]',$url,$match);
echo "//使用反斜杠'[]'作为分隔符(反斜杠可以不使用转义符)<br>";
echo "preg_match('[^http://[a-z]+\.[a-z]{2,6}/#]',$url,$match);的输出结果为:<br>";
echo $match[0]."<hr>";
输出结果:
//使用反斜杠'/'作为分隔符
preg_match('/^http:\/\/[a-z]+\.[a-z]{2,6}\/#/',http://baiwar.com/#,$match);的输出结果为:
http://baiwar.com/#
//使用反斜杠'#'作为分隔符(反斜杠可以不使用转义符,但其中的'#'需要使用转义符)
preg_match('#^http://[a-z]+\.[a-z]{2,6}/\##',http://baiwar.com/#,$match);的输出结果为:
http://baiwar.com/#
//使用反斜杠'^'作为分隔符(反斜杠可以不使用转义符),元字符不能使用'^',否则报错
preg_match('^http://[a-z]+\.[a-z]{2,6}/#^',http://baiwar.com/#,$match);的输出结果为:
http://baiwar.com/#
//使用反斜杠'[]'作为分隔符(反斜杠可以不使用转义符)
preg_match('[^http://[a-z]+\.[a-z]{2,6}/#]',http://baiwar.com/#,$match);的输出结果为:
http://baiwar.com/#
php中PCRE正则表达式分隔符的使用的更多相关文章
- PHP中 PCRE正则表达式模式修饰符“u” 的使用。
u (PCRE_UTF8) 此修正符打开一个与 perl 不兼容的附加功能. 模式字符串被认为是utf-8的. 这个修饰符 从 unix 版php 4.1.0 或更高,win32版 php 4.2.3 ...
- Snort中pcre和正则表达式的使用
Snort中pcre和正则表达式的使用 1. 题目描述 If snort see two packets in a TCP flow with first packet has "login ...
- 玩转PHP中的正则表达式
玩转PHP中的正则表达式 检验用户输入.解析用户输入和文件内容,以及重新格式化字符串 级别: 中级 正则表达式提供了一种处理文本的强大方法.使用正则表达式,您可以对用户输入进行复杂的检验.解析用户输入 ...
- PHP中的正则表达式及模式匹配
PHP中的正则表达式及模式匹配 PHP中对于正则处理文本提供了两种方式,一种是PCRE方式(PCRE库是一个实现了与perl 5在语法和语义上略有差异(详见下文)的正则表达式模式匹配功能的函数集. 当 ...
- MongoDB用PCRE正则表达式
介绍 下面说明 PCRE 所支持的正则表达式的语法和语义.Perl 文档和很多其它书中也解说了正则表达式,有的书中有很多例子.Jeffrey Friedl 写的“Mastering Regular E ...
- PHP中有关正则表达式的函数集锦
之前学正则表达式的目的是想从网上抓取点小说啊,文档啊,还有获取相应的视频连接然后批量下载.当时初学PHP根本不知道PHP有专门抓包的工具,就像Simple_html_dom.php(在我的其他博文中有 ...
- 任督二脉之Shell中的正则表达式
VBird说学习Linux,掌握了Shell和正则就相当于打通了任督二脉,此后能力的成长才会突飞猛进. Shell的基础学习之前已经总结了一篇博客:http://www.cnblogs.com/jyz ...
- 转载 javascript中的正则表达式总结 一
定义正则表达式的方法 定义正则表达式的方法有两种:构造函数定义和正则表达式直接量定义.例如: var reg1 = new RegExp('\d{5, 11}'); // 通过构造函数定义 var r ...
- PHP中的正则表达式的使用
PHP中的正则表达式基础知识1.正则表达式就是描述字符串排列模式的一种自定义语法规则2.如果可以使用字符串处理函数完成的任务,就不使用正则表达式3.有一些复杂的操作,只能使用正则表达式完成4.正则表达 ...
随机推荐
- zoj 2107&&hdu 1007最近点对问题
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1107 Quoit Design Time Limit: 5 Seconds ...
- nyoj 19擅长排列的小明 (DFS)
擅长排列的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 小明十分聪明,而且十分擅长排列计算.比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想 ...
- 机器学习十大算法之KNN(K最近邻,k-NearestNeighbor)算法
机器学习十大算法之KNN算法 前段时间一直在搞tkinter,机器学习荒废了一阵子.如今想重新写一个,发现遇到不少问题,不过最终还是解决了.希望与大家共同进步. 闲话少说,进入正题. KNN算法也称最 ...
- Nginx RTMP 专题
说明: 记录器 - 记录器名称 path - 记录文件路径(recorded file path) (/tmp/rec/mystream-1389499351.flv)filename - 省略目录的 ...
- mysql概要(十四)索引
1.索引是对数据库数据建立目录加快了查询速度.索引分为哈希索引和二叉树索引 (大数据量转移,如果表中带有大量字段索引,进行数据导入时,建议先去掉索引导入数据再统一加入索引,减少索引计算量) 2.索引原 ...
- HBase分享会议笔记
今天参加了一个关于HBase的分享,有一些内容是之前的知识的补充. 之前关于Hadoop家族,包括HBase的内容,可以参考:http://www.cnblogs.com/charlesblc/p/6 ...
- ListFragment
ListFragment http://developer.android.com/reference/android/app/ListFragment.html extends Fragment C ...
- Javascript 弱类型:除法结果是小数
由于javascript是弱类型,只有一种var类型,所以在运算时不会自动强制转换,所以计算的结果是多少就是多少,但java中的17/10的结果就是1(强类型与弱类型)比如:console.log(M ...
- XML Attributes(XML属性)
XML Attributes(XML属性) android:autoLink 是否自动链接网址或邮箱地址: android:autoText 自动检测错误: android:bufferType ...
- COM组件(ATL篇)
目录 第1章创建进程内组件 1 1.1 目标 1 1.2 创建项目 3 1.2.1 VC++6.0 3 1.2.2 VC++2010 5 1.3 增加COM类 6 ...