您的位置:首页 > 其它

今天是我第一天的博客日志

2016-12-05 14:42 337 查看
今天是2016年12月5日,天气晴朗,关于正则表达式的介绍

正则表达式是由以下几个部分组成

1)定界符:定义正则的边界

2)原子:是正则不可分割的最小组成单位

3)元字符:不能单独使用,是配合原子使用的,用来拓展原子的功能、修饰和限定原子

4)模式修正符:对整个正则的修正

下面我我们来按照顺序依次给大家介绍这四种组成部分

定界符:

$preg = '//'; 

其中的两个//就是正则的定界符,所有的正则语法写在//之间(模式修正符在//之外),除了使用//之外,还可以使用!!、||、@@等。除字母、数字和斜线“\”,其他任何字符都能做定界符。这里就不一一演示了,值得一提的是正则通常都用//表示,业内普遍使用//,为了代码可读性和方便别人维护,默认使用//来做定界符,我们作为初学者,就遵循这个规范来写吧。

原子:

原子是最小的组成单元。

$preg = '/a/'; 

其中a就是原子,这个正则的意思就是字母a。

其中有一些原子是通用的。例如你们可以想到表示所有数字的,表示所有字母的,下面介绍一些常用的通配符:

\d  表示所有数字,相当于[0-9]

\D  表示非数字,相当于[^0-9]

\w  表示字,相当于[a-zA-Z0-9_]

\W  表示非字,相当于[^a-zA-Z0-9_]

\s  表示打印字符,\n \t  \

\S  表示非打印字符,除了空格回车垂直制表符等

元字符:

*       前面的原子匹配匹配任意次

+       前面的原子匹配一次或多次

?       前面的原子匹配0次或者1次

|       前面的原子匹配两个或者多个分支(或的关系,两边出现一次即可匹配,优先级最低)

{n}     前面的原子匹配n次

{n,}    前面的原子匹配至少n次

{n,m}   前面的原子匹配n到m次

^或\A   目标字符串必须以什么什么开始(在多行中表示每一行第一个,在[]中表示非,例如[^a]就是除了a)

$或\Z   目标字符串必须以什么什么结尾(在多行中表示每行最后一个)

\b      单词边界

\B      除了单词以外的部分

()      1.改变优先级别2.将小原子变成大原子(add)*就是add这个单词任意次,不是d字符任意次3.子模式比如(http|https),在()中加?:取消子模式即(?:)4.反向引用

^与$    要在两端,表示以什么什么开始和以什么什么结尾,例如'/^a$/',就是必须a开始,a结尾的字符串

模式修正符:

1.写在定界符右边

2.可以组合写,也可以单独写(就是可以写一个或者多个)

常用的有

i  不区分大小写

m  视为多行(^$每一行)

s  可以匹配换行

x  忽略空白

v  取消贪婪模式,或者使用'(.*?)'取消,使用'(.*?)'就不能使用u
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: