正则表达式关键点汇总

2022-10-11 20:37:18 197 0
魁首哥

扩展正则表达式

扩展正则表达式就是在基本正则表达式的基础上,增加了一些元字符,而且有部分参数是不需要添加\转义符使用的。

字符匹配

代码

正则表达式关键点汇总

说明

.

匹配任意单个字符

[ ]

匹配范围内的任意单个字符

[^ ]

匹配范围外的任意单个字符

字符串不匹配

否定顺序环视:

 (?!(unfavored|unwanted))  
(?![a-z]*(unfavored|unwanted))[a-z]{,12}  
(?![a-z]*(unfavored|unwanted))  
  

例如:
不匹配baidu:

 ^(?!baidu).*$
  

匹配次数

代码

说明

*

匹配前面的字符任意次(0、1、或多次);

.*

任意长度的任意字符;

+

匹配前面的字符至少1次

?

匹配前面的字符0次或者1次,即前面的字符可有可无;

{m}

其前面的字符出现m次,m为非负整数;

{m,n}

其前面字符出现最少m次最多n次,{m,}最少m次,{o,n}最多n次

位置锚定

代码

说明

^

行首

$

行尾

<, \b

词首

>,\b

词尾

分组及引用

代码

说明

( )

分组

\1,\2,…

后向引用

注意:特殊用法 C|cat:表示C或cat ,表示整个左侧或整个右侧。 (C|c)at:表示Cat或cat

其他

列出几个扩展特殊符号:

代码

说明

于 . * 作用类似,表示 一个或多个重复字符。

?

于 . * 作用类似,表示0个或一个字符。

表示或关系,比如 ‘gd

()

将部分内容合成一个单元组(abc

比如 要搜索 glad 或 good 可以这样 ‘g(la

oo)d’ ()的好处是可以对小组使用 + ? * 等。

比如要搜索A和C开头结尾,中间有至少一个(xyz) 的串,可以这样 : ‘A(xyz)+C’

正则表达式元字符

元字符

普通转义

代码

说明

.

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

\w

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

\s

匹配任意的空白符

\d

匹配数字

\b

匹配单词的开始或结束

^

匹配字符串的开始

$

匹配字符串的结束

特殊字符转移义

比如[,可以使用[,如果[不好使,可以试试\[,这个在不同命令中不一样,awk -F ” 中必须是\[

重复次数

代码

说明

*

重复零次或更多次

+

重复一次或更多次

?

重复零次或一次

{n}

重复n次

{n,}

重复n次或更多次

{n,m}

重复n到m次

反义

代码

说明

\W

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

\S

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

\D

匹配任意非数字的字符

\B

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

[^x]

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

[^aeiou]

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

其他

代码

说明

\a

报警字符(打印它的效果是电脑嘀一声)

\b

通常是单词分界位置,但如果在字符类里使用代表退格

\t

制表符,Tab

\r

回车

\v

竖向制表符

\f

换页符

\n

换行符

\e

Escape

\0nn

ASCII代码中八进制代码为nn的字符

\xnn

ASCII代码中十六进制代码为nn的字符

\unnnn

Unicode代码中十六进制代码为nnnn的字符

\cN

ASCII控制字符。比如\cC代表Ctrl+C

\A

字符串开头(类似^,但不受处理多行选项的影响)

\Z

字符串结尾或行尾(不受处理多行选项的影响)

\z

字符串结尾(类似$,但不受处理多行选项的影响)

\G

当前搜索的开头

\p{name}

Unicode中命名为name的字符类,例如\p{IsGreek}

(?>exp)

贪婪子表达式

(?-exp)

平衡组

(?im-nsx:exp)

在子表达式exp中改变处理选项

(?im-nsx)

为表达式后面的部分改变处理选项

(?(exp)yes|no)

把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no

(?(exp)yes)

同上,只是使用空表达式作为no

(?(name)yes|no)

如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no

(?(name)yes)

同上,只是使用空表达式作为no

(括号)、[中括号]、{大括号}的区别小结

正则表达式的() [] {}有不同的意思。
() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
(\s*)表示连续空格的字符串。
[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者
号。
{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。
(0-9) 匹配 ‘0-9′ 本身。 [0-9]
匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。
[0-9]{0,9} 表示长度为 0 到 9 的数字字符串。
大括号{次数}可以用于小括号前,类似:(分组匹配){次数} 这种

例如:在PHP中过滤内容里面有数字或空格数字

 preg_replace("/\d{1,}\s{0,1}/", "xxxxxxxx", $signaturecontent);  

收藏
分享
海报
0 条评论
197
上一篇:PHP 线程,进程和并发 下一篇:wamp安装memcache拓展(附相关文件下载地址)

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码