php正则表达式详细学习

一、常用函数学习

1.preg_match与preg_match_all函数
两个函数都有三个参数preg_match(正则规则,目标字符串或是数组,结果字符串或是数组);返回值为查询次数

两者区别:preg_match 查询到一次结果就不在查询了,返回的查询次数为1
                  preg_match_all查询到最后全部查询完成后就不再查询,查询多少次,返回结果为多少。

2.preg_replace与preg_filter函数
两个函数都是进行查询饭后替换查询到的结果,有三个参数:查询规则,想要替换成的字符串或者数组,目标字符串或数组

区别:preg_replace :将没有被匹配到的数组也输出
           preg_filter:只会将匹配的数组输出

3.preg_grep 函数
preg_grep 与preg_filter函数的匹配方式差不多,有两个参数:匹配规则参数,目标数组参数      返回的是结果数组

代码
结果

preg_grep也是只返回匹配到的字符串。

4.preg_split函数
preg_split函数用于截断字符串,将字符串分割

代码
结果

二、基本语法

1.定界符
常用 ' / / '但是输出的时候需要用到  ' /  ' 的时候需要用到转义符' \ ';

2.原子
分为可见原子以及不可见原子
可见:a-z A-Z 0-9 各种标点符号,汉字,英文,其他国家语言文字(Unicode编码表中可用键盘输出后肉眼可见的字符,例如:标点 ; . / ? 或者英文字母,汉字等等可见字符)
不可见:Unicode编码表中可用键盘输出后肉眼不可见的字符,例如:换行符 \n,Tab制表符\t, 空格等等,一般只用这三个(换行符一般和其他字符一起匹配,因为只有换行符是匹配不到的)小提示:匹配运算符前面需要加'\' 例如:'+' 号,匹配的话需要写出 '\+'

3.原字符
| 匹配两个或者多个分支选择
[] 匹配方括号中的任意一个原子
[^] 匹配除方括号中的原子之外的任意字符;
例子:Duang|duang 或者 [Dd]uang 都可以匹配到Duang和duang
区间写法:[a-z]匹配a到z的字符, [0-9]匹配0到9的字符。也可以[a-z0-9]
. 匹配除换行符之外的任意字符
\d 匹配任意一个十进制数字,即{0-9]
\D 匹配任意一个非十进制数字[^0-9] 相当于[^\d]
\s 匹配一个不可见的原子,即[\f\n\r\t\v]
\S 匹配一个可见的原子,即[\f\n\r\t\v],相当于[\s]z
\w 匹配任意一个数字、字母或下划线,即[0-9a-zA-Z_]
\W 匹配任意一个非数字、字母或下划线,[0-9a-zA-Z_],相当于[\w]

4.量词
{n}:限制n位
{n,}:限制最少为n位到正无穷
{n,m}:限制最少为n为,最多为m位
*:范围为0-无限
?:范围为0或1
+:范围为1-无限

5.边界限制
^为限制开头        $为限制结尾

6.模式单元
(a|b)选择其中的一种选择

三、修正模式

1.贪婪与懒惰模式
贪婪模式:在歧义选择时尽可能的选择更多的。(默认模式)
懒惰模式:在歧义选择时尽可能的选择更少的。(/[a-z/0-9]/U修改为懒惰模式后面加上U)

参考:https://www.cnblogs.com/Johnson-lin/p/10875388.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于PCRE的介绍以及实现正则表达式功能的所有说明,都可以在官方手册中看到:正则表达式(兼容 Perl) 一、认识...
    拿破仑蛋糕阅读 1,624评论 0 1
  • 概述 正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。常用的语...
    醉于麦田阅读 514评论 0 0
  • 正则表达式介绍 正则表达式简介 正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、...
    dptms阅读 10,963评论 1 9
  • PHP常用正则表达式汇总 正则表达式在 PHP 中的应用在 PHP 应用中,正则表达式主要用于: 正则匹配:根据正...
    DragonRat阅读 1,468评论 0 4
  • 所有的一切,都在正常的發生,只是我們關注了和自己有關的部分,景色再迷人,你不去欣賞,就沒有任何連結,抱怨的人,就會...
    沐雨時光阅读 182评论 0 2