前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP核心技术与最佳实践 读书笔记 第三章 正则表达式基础与应用

PHP核心技术与最佳实践 读书笔记 第三章 正则表达式基础与应用

作者头像
lilugirl
发布2019-05-26 20:20:43
6140
发布2019-05-26 20:20:43
举报
文章被收录于专栏:前端导学前端导学前端导学

第三章 正则表达式基础与应用

3.1 认识正则表达式

正则表达式就是用某种模式去匹配一类字符串的公式。

Perl和.NET对正则表达式的支持最为强大,而Javascript对正则表达式的支持则比较“朴素”。

3.1.1 PHP中的正则函数

NFA和DFA

PHP有两套正则函数 :PCRE库的 preg_ 和POSIX扩展的ereg_(不推荐)

3.1.2 正则表达式的组成

分隔符,表达式和修饰符

分隔符:是除了字母,数字,反斜线以及空白字符意外的任何字符(如/ ! # % | ~等)

表达式:由一些特殊字符和非特殊的字符串组成

修饰符:用于开启或者关闭某种功能/模式

3.1.3 测试工具的使用

RegexTester Firefox扩展Regular Expression Tester

3.2 正则表达式中的元字符

\b 是正则表达式规定的一个特殊代码,代表单词的开头或者结尾,也就是单词的分界处。

点号.是元字符,匹配除了换行符以外的任意字符。 *同样是元字符,它指定“*”前面的内容可以连续重复使用任意次以使整个表达式得到匹配。

3.2.1 什么是元字符

元字符(Meta-Characters)是正则表达式中具有特殊意义的专用字符,用来规定其前导字符在目标对象中的出现模式。

元字符

描述

.

匹配除换行符以外的任何字符

\w

匹配字母或数字或下划线或汉字

\s

匹配任意空白符

\d

匹配数字

\b

匹配单词的开始或结束

^

匹配字符串的开始

$

匹配字符串的结束

-

表示范围

[]

匹配括号中的任意一个字符

* + ?

量词

3.2.2 起始和结束元字符

3.2.3 点号

3.2.4 量词

限定符代码/语法

描述

*

重复0次或更多次

+

重复1次或更多次

?

重复0次或者1次

{n}

重复n次

{n,}

重复n次或更多次

{n,m}

重复n此到m次

3.3 正则表达式匹配规则

3.3.1 字符组

[]匹配单个字符,尽管看起来[]里有好多字符

3.3.2 转义

Javascript \r\n代表换行 alert("可以换行\r\n第二行");

PHP转义符\ \Q和\E也可以在模式中忽略正则表达式元字符 \Q和\E之间的元字符都会作为普通字符来匹配

$reg="#[aby\{]#";
$str='a\bc[]{}';
preg_match_all($reg,$str,$m);
var_dump($m);

3.3.3 反义

常用反义

描述

\W

匹配任意不是字母,数字,下划线,汉子的字符

\S

匹配任意不是空白符的字符

\D

匹配任意非数字的字符

\B

匹配不是单词开头或者结束的位置

[^x]

匹配除了x以外的任意字符

[^aeiou]

匹配除了aeiou这几个字符以外的任意字符

3.3.4 分支

|表示分支

3.3.5 分组

重复一组字符

用 (表达式)

3.3.6 反向引用

反向引用用于重复搜索前面某个分组匹配的文本。

后一个例子没看懂 略过

3.3.7 环视

只有断言为真时才会继续进行匹配。

1 顺序肯定环视(?=exp)

2 逆序肯定环视(?<=exp)

3 顺序否定环视(?!exp)

4 逆顺否定环视(?<!exp)

3.3.8 贪婪/懒惰匹配模式

最先开始的匹配拥有最高优先权

懒惰限定符

懒惰限定符代码/语法

描述

*?

重复任意次,但尽可能少重复

+?

重复1次或更多次,但尽可能少重复

??

重复0次或1次,但尽可能少重复

{n,m}?

重复n到m次,但尽可能少重复

{n,}?

重复n次以上,但尽可能少重复

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第三章 正则表达式基础与应用
    • 3.1 认识正则表达式
      • 3.1.1 PHP中的正则函数
      • 3.1.2 正则表达式的组成
      • 3.1.3 测试工具的使用
    • 3.2 正则表达式中的元字符
      • 3.2.1 什么是元字符
      • 3.2.2 起始和结束元字符
      • 3.2.3 点号
      • 3.2.4 量词
    • 3.3 正则表达式匹配规则
      • 3.3.1 字符组
      • 3.3.2 转义
      • 3.3.3 反义
      • 3.3.4 分支
      • 3.3.5 分组
      • 3.3.6 反向引用
      • 3.3.7 环视
      • 3.3.8 贪婪/懒惰匹配模式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档