PHP 正则表达式(PCRE)
PHP 正则表达式(PCRE)
正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
更多正则表达式的内容可参考我们的:正则表达式 - 教程。
PHP 中我们可以使用 PCRE 扩展来匹配字符串的模式。
PCRE 函数
| 函数 | 描述 |
|---|---|
| preg_filter | 执行一个正则表达式搜索和替换 |
| preg_grep | 返回匹配模式的数组条目 |
| preg_last_error | 返回最后一个PCRE正则执行产生的错误代码 |
| preg_match_all | 执行一个全局正则表达式匹配 |
| preg_match | 执行一个正则表达式匹配 |
| preg_quote | 转义正则表达式字符 |
| preg_replace_callback_array | 执行一个正则表达式搜索并且使用一个回调进行替换 |
| preg_replace_callback | 执行一个正则表达式搜索并且使用一个回调进行替换 |
| preg_replace | 执行一个正则表达式的搜索和替换 |
| preg_split | 通过一个正则表达式分隔字符串 |
PREG 常量
| 常量 | 描述 | 自哪个版本起 |
|---|---|---|
PREG_PATTERN_ORDER |
结果按照"规则"排序,仅用于preg_match_all(), 即$matches[0]是完整规则的匹配结果, $matches[1]是第一个子组匹配的结果,等等。 | since |
PREG_SET_ORDER |
结果按照"集合"排序,仅用于preg_match_all(), 即$matches[0]保存第一次匹配结果的所有结果(包含子组)信息, $matches[1]保存第二次的结果信息,等等。 | |
PREG_OFFSET_CAPTURE |
查看PREG_SPLIT_OFFSET_CAPTURE的描述。 |
4.3.0 |
PREG_SPLIT_NO_EMPTY |
这个标记告诉 preg_split() 进返回非空部分。 | |
PREG_SPLIT_DELIM_CAPTURE |
这个标记告诉 preg_split() 同时捕获括号表达式匹配到的内容。 | 4.0.5 |
PREG_SPLIT_OFFSET_CAPTURE |
如果设置了这个标记,每次出现的匹配子串的偏移量也会被返回。注意,这会改变返回数组中的值, 每个元素都是由匹配子串作为第0个元素,它相对目标字符串的偏移量作为第1个元素的数组。这个 标记只能用于 preg_split()。 | 4.3.0 |
PREG_NO_ERROR |
没有匹配错误时调用 preg_last_error() 返回。 | 5.2.0 |
PREG_INTERNAL_ERROR |
如果有PCRE内部错误时调用 preg_last_error() 返回。 | 5.2.0 |
PREG_BACKTRACK_LIMIT_ERROR |
如果调用回溯限制超出,调用preg_last_error()时返回。 | 5.2.0 |
PREG_RECURSION_LIMIT_ERROR |
如果递归限制超出,调用preg_last_error()时返回。 | 5.2.0 |
PREG_BAD_UTF8_ERROR |
如果最后一个错误时由于异常的utf-8数据(仅在运行在 UTF-8 模式正则表达式下可用)。 导致的,调用preg_last_error()返回。 | 5.2.0 |
PREG_BAD_UTF8_OFFSET_ERROR |
如果偏移量与合法的urf-8代码不匹配(仅在运行在 UTF-8 模式正则表达式下可用)。 调用preg_last_error()返回。 | 5.3.0 |
PCRE_VERSION |
PCRE版本号和发布日期(比如: "7.0 18-Dec-2006")。 | 5.2.4 |
PHP 正则表达式(PCRE)的更多相关文章
- [正则表达式]PCRE环视功能
设想一下这个问题,假设为了方便长串数字的阅读性,需要为其添加逗号作为分隔,需要怎么做呢? 2569836495 => 2,569,836,495 正则表达式的匹配通常是从左往右的,这导致无法使用 ...
- [正则表达式]PCRE反向分组引用
在常见的文本匹配场景上,经常会需要用到一些像HTML这样的嵌套标签类型的文本匹配,经过多翻折腾,拼凑出了这样的一条语句 (<([\w]+)>((?1)|[\w\s])*</\2> ...
- [正则表达式]PCRE反向分组引用(语法)
正则表达式中,凡出现圆括号(),括号中的匹配内容就会被认为是一个分组: 根据括号从左边出现的顺序命名分组代号,分组代号由1到n(代号0通常被一些语言用来引用整个表达式匹配的结果,即使这个表达式没有分组 ...
- php基础知识考察点:正则表达式
1.正则表达式的作用:分割,查找,匹配,替换 字符串 2.分隔符:正斜线(/),hash符(#)以及取反符号(~). 3.通用原子:\d \D \s \S \w \W 4.原子符 5. 模式修正符 6 ...
- PHP正则表达式考察点
正则表达式的作用 分隔.查找.匹配.替换字符串 正则表达式的组成部分 分隔符 "/" . "#" . "~" 通用原子 \d : 十进制的0 ...
- PHP面试 PHP基础知识 六(正则表达式)
正则表达式 正则表达式的作用 分割.查找.匹配.替换字符串 分隔符:正斜线(/).hash符号(#).以及取反符号(~) 通用原子:\d(代表十进制的0-9).\D (取反除了0-9).\w(数字 ...
- 以实际的WebGIS例子探讨Nginx的简单配置
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ...
- FreeSWITCH 1.2.5.3 Step by Step Install
Ubuntu: apt-get -y install build-essential automake autoconf git-core wget libtool apt-get -y instal ...
- php优点
PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写.PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本 ...
随机推荐
- RxJava 机制
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha rxjava 是 以 响应式 编程思想 编程的 java类库
- [BZOJ4289][PA2012]TAX(最短路)
首先考虑一种暴力做法,为每条边拆成两条有向边,各建一个点.若某两条边有公共点,则在边所对应的点之间连一条边,权值为两条边中的较大值.这样跑最短路是$O(m^2\log m)$的. 用类似网络流中补流的 ...
- POJ 3974 Palindrome 字符串 Manacher算法
http://poj.org/problem?id=3974 模板题,Manacher算法主要利用了已匹配回文串的对称性,对前面已匹配的回文串进行利用,使时间复杂度从O(n^2)变为O(n). htt ...
- 没有调用PageHelper.startPage()分页方法,最后还是执行了PageHelper分页方法的原因
SELECT * FROM ( SELECT TMP_PAGE.*, ROWNUM ROW_ID FROM ( SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( ...
- 破解ZendStudio 10.1
破解文件的网盘地址: http://pan.baidu.com/share/link?shareid=3562282358&uk=1543766223
- 东东糖博客MYSQL
http://blog.chinaunix.net/uid-20785090-id-4328033.html
- document.readyState等属性,判断页面是否加载完
如何在页面加载完成后再去做某事?什么方法可以判断当前页面加载已完成?document.readyState 判断页面是否加载完成?javascript提供了document.readyState==& ...
- js数组的使用
1.创建: var arr=Array(); 2.遍历: for(var arg in arr){ alert(arr[arg]); } 3.追加 arr1.concat(arr2) 4.元素删除 d ...
- oracle维护服务 oracle解决方案 oracle售后服务
为客户提供的oracle 金牌技术服务内容为: 1.电话服务 (7*24) 热线支持电话800-810-0081 每周7天,每天24小时北京技术支持中心每天都有专人值守.以保证及时与客 ...
- Android之旅十四 android中的xml文件解析
在我们做有关android项目的时候,肯定会涉及到对xml文件的解析操作.以下给大家介绍一下xml文件的解析.包括DOM.SAX.Pull以及曾经我们用到的DOM4J和JDOM: 要解析的XML文件: ...