正则表达式基础

12 篇文章 0 订阅

一,正则表达式的模式如何编写

语法:

1, 定界符号:除了字母,数字和反斜线\以外的任何字符都可以为定界符号

没有特殊需要,我们都使用正斜线作为正则表达式的定界符号

2, 原子:

原子是正则表达式的最基本组成单位,而且必须至少包含一个原子

只要一个正则表达式可以单独使用的字符,就是原子

如果所有有意义的字符,想作为原子使用,统统使用“\”转义字符转义

在正则表达式中可以直接使用一些代表范围的原子:

              \d:表示任意一个十进制的数字

              \D:表示任意一个除数字以外的字符

              \s:表示任意一个空白字符,空格  \n \r \t \f

              \S:表示任意一个非空白

              \w:表示任意一个字

              \W:表示任意一个非字

自己定义一个原子表[] ,可以匹配方括号中的任何一个字符

3, 元字符

元字符是一种特殊的字符,是用来修饰原子用的,不可以单独出现

*:表示其前的原子可以出现0次,1次,或多次           {0,}

+:表示其前的原子可以出现1次或多次,不能没有最少有一个{1,}

?:表示其前的原子可以出现0次或1次,有只能有一次,要么没有{1,1}

{}:用于自己定义前面原子的次数

                      {m}:m表示一个整数,,{5}表示前面的原子出现5次

                      {m,n}:m和n表示一个整数,m要小于n,表示前面出现的原子最少m次,最多n次

                      {m,}:表示前面的原子最少出现m次,最多无限

.:默认情况下表示除换行符外任意一个字符

^:直接在一个正则表达式的第一个字符出现,则表达式必须以这个正则表达式开始

$:直接在一个正则表达式的最后一个字符出现,则表达式必须以这个正则表达式结束

|:表示或的关系,它的优先级是最低的,最后考虑它的功能

\b:表示一个边界

\B:表示一个非边界

():作为一个大原子使用

        改变一个优先级,加上括号可以提高优先级别

        作为子模式使用,正则表达式不先对一个字符串匹配一次,全部匹配作为一个大模式,放到数组的第一个元素中,每个()是一个子模式按顺序放到数组的其他元素中去

可以取消子模式,就将()作为大原子或改变优先级使用,在括号中最前面使用“?:”就可以取消这个()表示的子模式

反向引用,可以在模式中直接将子模式取出来,再作为正则表达式模式的一部分,如果是在正则表达式像替换函数preg_replace函数中,可以将子模式取出,在被替换的字符串中使用

\1取第一个子模式,\2取第二个子模式,,,,,(注意是单引号还是双引号引起来的正则)

4, 模式修正符

1,就是几个字母

2,可以一次使用一个,每一个具有一定的意义,也可以连续使用多个

3,是对整个正则表达式调优使用,也可以说是对正则表达式功能的扩展

 

i:表示在和模式进行匹配中不区分大小写

m:默认情况,将字符串视为一行

s:如果没有使用这个模式修正符号时,元字符的“.”默认不能表示换行符号,将字符串视为单行

x:表示模式中的空白忽略不计

e:正则表达式必须使用在preg_replace替换字符串的函数中才可以使用

U:.* .+(所有字符斗符合这个条件)

一种是使用模式修正符U

加一种是使用?完成 .*? .+?

如果2中方式同时出现,又开启了贪婪模式

5,优先级:

\

() (?:) []

* ? {}

^ $

|

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值