文档章节

正则表达式使用备注

啦瑞
 啦瑞
发布于 2014/03/12 12:24
字数 751
阅读 13
收藏 0

最近重新整理了一下PHP里正则的一些使用方式,在此记录下来,以备以后用到时再次查看。

原子:

^ 在()或[]中取反 例如:[^\d] 等于匹配非数字

a-z A-Z_ 0-9 //最常见的字符

(abc) //用括号扩起来的将当作一个整体匹配,必须是abc同时在一块才能匹配成功

[abc] //方括号与圆括号相反,表示可以是a、b、c

\d 包含所有数字[0-9]

\B 除所有数字外[^0-9]

\w 包含所有常见字符[a-zA-Z_0-9]

\w 不包含所有常见字符[^a-zA-Z_0-9]

\s 包含空白区域,如回车、换行、分页等[\f\n\r]

 

元字符:

* 匹配前一个内容的0次1次或多次 例如: /key*rey/ 匹配y的0次一次或多次 y* 是一个整体,不管实际字符串中是否有y; {"keyrey","kerey":匹配成功}

. 匹配内容的0次1次或多次,但不包含回车换行,通配符; /key.*rey/ 匹配key rey中间的任何内容 {keyfds*$7fd732f_)rey:匹配成功}

+ 匹配前一个内容的1次或多次 /key+rey/ 匹配y的一次或多次,字符串中必须要y才能匹配成功;  {"keyrey","keyyyyyrey":匹配成功},{"kerey":匹配失败}

? 匹配前一个内容的0次或1次 /key?rey/ 匹配y的0次或一次;  {"keyrey" "kerey":匹配成功},{"keyyrey":匹配失败}

| 选择匹配类似PHP中的|| /keyrey|baidu/ {"keyrey%*baidu":匹配成功},{"fdas","baidu":匹配成功}

^ 匹配字符串首部内容 /^keyrey/ 必须以keyrey开头

$ 匹配字符串尾部内容 /keyrey$/ 必须以$结尾

\b 匹配单词边界,边界可以是空格或者特殊字符 中文环境下主要用来匹配空格

\B 匹配除带单词边界以外内容

{m} 匹配前一个内容的重复次到m次; /key{1}rey/ 匹配y1次 {"keyrey":匹配成功},{"keyyrey","kerey":匹配失败}

{m,} 匹配前一个内容的重复次数m次到n次; /key{1,}rey/ 匹配1到n次 {"keyrey","keyyyyrey":成功,"kerey":匹配失败}

{m,n} 匹配前一个内容的重复次数m次到n次 /key{3,5}rey/ 匹配3到6次之间

() 合并整体匹配,并放入内存,可使用\1\2...依次获取 /(gle)(.*)\\1.*\\2/ {"gleAAAgle11AAA":成功}

 

PHP中常用模式修正符:

运算优先级: () *  ? + {} ^ $ \b | 最后按运算顺序

i 正则内容在匹配的时候不区分大小写(默认是区分的)

m 在匹配首内容或者尾内容时候采用多行识别匹配

S 将转义回车取消为单行匹配如.匹配的时候

x 忽略正则中的空白

A 强制从头开始匹配

D 相知$匹配尾部无任何内容 \n

U 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束,常用在采集程序上的正则表达式

java 中非贪婪  (.*?) 

© 著作权归作者所有

啦瑞
粉丝 0
博文 25
码字总数 8484
作品 0
浦东
高级程序员
私信 提问
【转载】C#使用正则表达式校验邮箱

在C#中,可以使用Regex正则表达式类来校验前台提交过来的邮箱字段信息是否符合要求,Regex类是C#中有关正则表达式处理的相关类,功能强大,我们只需要在实例化Regex类的时候指定相应的规则为...

江湖逍遥
03/22
0
0
【转载】 C#检测输入的内容中是否含有中文

在C#开发中,可以结合正则表达式,来检测输入的内容中是否包含中文,Regex类是C#中有关正则表达式处理的相关类,功能强大,我们只需要设置好规则,即可很快检测出输入的字符串内容中是否含有...

江湖逍遥
03/31
0
0
zabbix监控日志文件 MySQL日志为例

一般情况下,日志最先反映出应用当前的问题,在海量日志里面找到我们异常记录,然后记录下来,并且根据情况报警,大家可以监控系统日志、nginx、Apache、业务日志。这边我拿常见的MySQL日志做...

胡雨生
2017/05/14
0
0
golang 中的 regexp 包

正则 语法 google/re2 Printf 语法 几个函数方法 名称 说明 备注 Match 验证正则表达式是否匹配 []byte - MatchString 验证正则表达式是否匹配 string - FindString FindStringSubmatch 返回...

lemos
2017/07/08
1K
0
Puppet 之 流程控制介绍

1 概述 puppet流程控制语句有四种,if,case,selector,unless(3.7版本后引入),由于unless是if单分支语句取反,因此,本文重点介绍if,case,selector三种语法的使用 备注:本文的相关内容摘自文...

ghbSunny
2017/11/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Vue warn]: Computed property "activeNames" was assigned to but it has no setter.

在使用 vue,element-ui时,如下代码 <template> <el-form :model="numberValidateForm" ref="numberValidateForm"> <el-form-item> <el-tabs v-model="activeNames" @tab-cl......

牧云橙
16分钟前
2
0
重构-改善既有代码的设计-6.2内联函数

6.2内联函数 动机 本书经常以简短的函数表现动作意图,这样会使代码更清晰易读。但有时候你会遇到某些函数,其内部代码和函数名称同样清晰易读。也可能你充够了该函数的内部实现,使其内容和...

还仙
17分钟前
2
0
Less 混入

混合类似于编程语言中的函数。 Mixins 是一组CSS属性,允许我们将一个类的属性嵌套于另一个类,被嵌入的类可以看作是变量,并且包含类名作为其属性,也就是说我们可以用一个类定义样式然后把...

凌兮洛
20分钟前
3
0
频繁FGC的真凶原来是它

频繁FGC的真凶原来是它 上周排查了一个线上问题,主要现象是CPU占用过高,jvm old区占用过高,同时频繁fgc,我简单排查了下就草草收场了,但是过后我对这个问题又进行了复查,发现问题没有那...

每天晒白牙
21分钟前
3
0
简单的树形菜单如何写

业务需求 数据结构中含有图片、名称、children的树形结构,需要展示出每一级的图片名称和图片,找了些树形图的插件,都没有展示大的图片的,一般都是小图标,就自己试着写一个包含图的简单的...

tianyawhl
22分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部