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.正则表达 ...
随机推荐
- HDU 2222 Keywords Search(查询关键字)
HDU 2222 Keywords Search(查询关键字) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K ...
- .NET中的三种接口实现方式
摘自:http://www.cnblogs.com/zhangronghua/archive/2009/11/25/1610713.html 一般来说.NET提供了三种不同的接口实现方式,分别为隐式接 ...
- ubuntu14.04配置静态IP地址
1. 找到文件并作如下修改:vim /etc/network/interfaces修改如下部分:# interfaces(5) file used by ifup(8) and ifdown(8)au ...
- SAP接口编程 之 JCo3.0系列(05) : Exception Handling
JCO3.0的Exception,常用的Exception如下: JCoException 继承自java.lang.Exception,是JCo3中Exception的基类. JCoRuntimeE ...
- hostapd and wpa_supplicant
一.Hostapd hostapd 是一个用户态用于AP和认证服务器的守护进程.它实现了IEEE 802.11相关的接入管理,IEEE 802.1X/WPA/WPA2/EAP 认证, RADIUS客户 ...
- Java编程思想笔记
打好java基础 后续会增加相应基础笔试题 目录如下 1 对象导论2 一切都是对象3 操作符4 控制执行流程5 初始化与清理6 访问控制权限7 复用类8 多态9 接口10 内部类11 持有对象12 通 ...
- iOS开发之 Xcode 5 下让你的应用在不同状态(debug, release)有不同的图标
http://nickcheng.com/post/unique-icons-for-your-app-in-different-state-in-xcode5-debug-release 应用在发布 ...
- Android dex分包方案
当一个app的功能越来越复杂,代码量越来越多,也许有一天便会突然遇到下列现象: 1. 生成的apk在2.3以前的机器无法安装,提示INSTALL_FAILED_DEXOPT 2. 方法数量过多,编译时 ...
- Android 数据库升级解决方案
转自:http://blog.csdn.net/leehong2005/article/details/9128501 请考虑如下情况: 在数据库升级时,不同版本的数据库,他们定义的表结构完全可能是不 ...
- Struts2文件上传
1 在Struts2中上传文件需要 commons-fileupload-1.2.1.jar.commons-io-1.3.2.jar 这两个包. 2 确认页面form表单上的提交方式为POST, ...