PHP中正则表达式学习及应用

正则表达式元字符

* 匹配前一个内容的0次1次或多次 . 匹配内容的0次1次或多次,但不包含回车换行 + 匹配前一个内容的1次或多次 ?匹配前一个内容的0次或1次 | 选择匹配类似PHP中的| (因为这个运算符合是弱类型导致前面最为整体匹配) ^ 匹配字符串首部内容 $ 匹配字符串尾部内容 \b 匹配单词边界,边界可以是空格或者特殊符合 \B 匹配除带单词边界意外内容 {m} 匹配前一个内容的重复次数为M次 {m,} 匹配前一个内容的重复次数大于等于M次 {m,n} 匹配前一个内容的重复次数M次到N次 ( ) 合并整体匹配,并放入内存,可使用\1 \2…依次获取

按照运算顺序计算匹配

  1. ( ) 圆括号因为是内存处理所以最高
  2. * ? + { } 重复匹配内容其次
  3. ^ $ \b 边界处理第三
  4. | 条件处理第四

模式修正符

i 正则内容在匹配时候不区分大小写(默认是区分的) m 在匹配首内容或者尾内容时候采用多行识别匹配 S 将转义回车取消是为单行匹配如. 匹配的时候 x 忽略正则中的空白 A 强制从头开始匹配 D 强制$匹配尾部无任何内容 \n U 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束, 常用在采集程序上的正则表达式

preg_match_all 全部匹配函数

preg_match_all ( string pattern, string subject, array matches [, int flags] )用途:截取比较详细的内容,采集网页,分析文本

preg_replace 正则替换函数

preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )通过正则表达式来替换相关内容,类似之前学过的str_replace字符串替换,但功能要强于它。

提示:1、替换内容可以是一个正则也可以是数组正则 2、替换内容可以通过修正符e来解决替换执行内容

preg_split 正则切割

preg_split ( string pattern, string subject [, int limit [, int flags]] )通过正则表达式来切割相关内容,类似之前学过的explode切割函数,但explode只能按照一种方式切割有局限性。

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2014-11-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

提升Python程序性能的7个习惯

使用局部变量替换模块名字空间中的变量,例如 ls = os.linesep。一方面可以提高程序性能,局部变量查找速度更快;另一方面可用简短标识符替代冗长的模块变...

480
来自专栏hbbliyong

C#新功能--命名参数

  命名参数会潜在的改变编写代码的方式.这个新功能能使代码更容易阅读和理解. 例如,看一下System.IO名称空间中的File.Copy()方法,它一般构建为...

2585
来自专栏老司机的技术博客

人人都能学会的python编程教程8:条件判断与循环

实际的项目中条件判断可以说是使用最多的语法之一了,不管是最简单的判断还是负责的业务逻辑和算法,条件判断都如影随形。

1.1K10
来自专栏企鹅号快讯

【C语言编程锦囊·连载42】scanf函数的返回值是什么?

问题阐述 scanf函数是用于数据输入的,输入变量的值被改变,那么scanf函数本身是否有返回值,返回值是什么意义呢? 专家解答 scanf函数的返回值很少有人...

1888
来自专栏企鹅号快讯

Python教学从零开始——第四天

在前面的几天中,我们了解了tulpe,list的操作,os模块案例,for循环,前面的示例比较简单,几乎没有太多的语法,今天我们要来说一法语法,语法通常都是硬性...

1987
来自专栏编程之旅

ES6——箭头函数

ES6之后,允许使用箭头=>来定义函数。首先我们来总结一下箭头函数存在的意义,之后再来细细的看它的使用方法。

522
来自专栏take time, save time

初级程序员面试不靠谱指南(二)

3.read-only的const。如果你突然冒出一句看似很高深的话但又不解释一般都是装逼,就像前面提到过const准确的应该理解为一个read-only的变量...

2697
来自专栏MasiMaro 的技术博文

lxml的另一种用法

python中lxml库是一个十分强大的xml解析库,最近在看《白帽子将web扫描》这本书的时候,里面提供了一种不同于以往的用法,因此在这将这个方法记录下来 ...

542
来自专栏Crossin的编程教室

【Python 第17课】 类型转换

昨天又被微信后台给坑了,导致有些同学收了2遍消息。希望今天能顺利发成功。。。 #==== 类型转换 ====# python的几种最基本的数据类型,我们已经...

2516
来自专栏WD学习记录

C#学习笔记(一)

1. 使用#region和#endregion关键字,来定义可以展开和折叠的代码区域的开头和结尾

982

扫描关注云+社区