正则表达式

目录

第一节     正则表达式... 1

第二节     Word的正则表达式... 4

 

第一节          正则表达式

clip_image002

对于字符串“a5”,是由两个字符“a”、“5”以及三个位置组成的,这一点对于正则表达式的匹配原理理解很重要。

A        字符组

表达式

说明

能被匹配

不被匹配

[abc]

匹配其中一个。那怕是符号字符。

ac

dA

[a-z]

匹配任意一个小写字母,限升序。

ax

AX

[A-Z]

匹配任意一个大写字母,限升序。

AX

ax

[0-9]

匹配任意一个数字,限升序。

等价于[0123456789]

01

ax

[u4e00-u9fa5]

表示任意一个汉字

a

[a-zA-Z0-9]

匹配任意一个字母或数字

A0

+@_

[^a1<]

匹配除此之外的字符(排除)

B2

1<

[^a-z]

表示除小写字母外的任意一个字符

AB

ab

.

匹配除换行符 的任何单个字符。

 

 

B        定位符

字符

描述

举例

^

从行首位置开始匹配。

^The:行开头为the/THE,但athe不是。

$

从行未位置检查匹配。

end$:行结尾为end/END,但enda不是。



B

是否匹配一个词边界,各软件定义不一样的。

Notepad++中只有且和普通查找无区别。

C         限定选择符

字符

说明

举例

?

匹配前面的子表达式0次或1次。

{0,1}

ab?匹配aababb

*

匹配前面的子表达式0次或任意多次。{0,}

[^a]*:匹配bca,不是aab

+

匹配前面的子表达式1次或任意多次。{1,}

ds+d两个数字中间至少有一个以上的空白字符。

|

多个子表达式之间取“或”的关系;

如是字符串可书写任意长度。

(t|T)(h|H)等价[tT][hH]

等价(Th|tH|th|TH)

Notepadd++不分大小写

( )

要匹配的表达式。

获取后可以反向引用(见捕获组)。

()里可以放[]{},但[]{}里不能放()

/^[a-zA-Z]{1}([a-zA-Z0-9]|[.@_]){4,19}$/

以字母开头,可带数字小数点@下划线的长度5-20字符串的行。

^[0-9]{1,20}$:仅1-20位的数字行。

[ ]

定义匹配的字符范围,只能是单个字符。

{ }

前面子表达式的匹配长度。

{m}

匹配前面的子表达式m

d{3}相当于ddd

(abc){2}相当于abcabc

{m,n}

匹配前面的子表达式最少m次,最多n

d{2,3}匹配2-3位的数字

{m,}

匹配前面的子表达式至少m

[a-z]{8,}至少8位以上的字母

D        预定义字符集

小写是匹配,大写是不匹配。w字母数字下划线,d数字,s空白字符。

字符

描述

w

任意一个字母或数字或下划线,相当于[a-zA-Z0-9_]

W

w取反,相当于[^a-zA-Z0-9_]

d

任意一个数字,相当于[0-9]

D

任意一个非数字字符,d取反,相当于[^0-9]

s

任意空白字符,相当于[ f v]。包含空格字符。

S

任意非空白字符,s取反,相当于[^ f v]

1).   POSIX风格的预定义字符类

 

clip_image004

E         非打印字符

字符

描述

cx

匹配由x指明的控制字符。

例如cM匹配一个Control-M或回车符,x的值必须为A-Za-z之一。

f

匹配一个换页符。等价于x0ccL

匹配一个换行符。等价于x0acJ

匹配一个回车符。等价于x0dcM

匹配一个制表符。等价于x09cI

v

匹配一个垂直制表符。等价于x0bcK

F         转义字符

如果在正式表式中查找(正式表达工自身字符)时,前缀转义字符即可。

将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。

转义字符:

示例

匹配$字符:$       匹配*字符:*       匹配+字符:+

匹配.字符:.         匹配[字符:[         匹配?字符:?

匹配/字符:/        匹配字符:\        匹配{字符:{

例外

[]中不需要转义字符。

因为不会这样书写:^写成[^]d-z写成[d-]

/:在某些语言中表示正则表达式的开始或结束,而VBScript中使用“”做边界符。

G        模式修饰符

模式修饰符的作用是设定模式。也就是规定正则表达式应该如何解释和应用。

不同的语言都有自己的模式设置,PHP中的主要模式如表所示:

clip_image005

H        捕获组

表达式

说明

(Expression)

普通捕获组,将子表达式Expression匹配的内容保存到以数字编号的组里

(?<name> Expression)

命名捕获组,将子表达式Expression匹配的内容保存到以name命名的组里

12

对序号为12的捕获组的反向引用

k<name>

对命名为name的捕获组的反向引用

查找:(t|T)(h|H)   替换:1(abc)2

描述:th/TH单词替换为tabch/TabcH

第二节          Word的正则表达式

clip_image007clip_image009

示例文:

A123

B123

A234

A123

And

结果:

A123

B123

A234

And

查找:

(<[!^13]*^13)(*)1

替换:

12

释义:

()为表达式,<为单词开头,[!^13]为排除分段符^p1为第一个表达式

 

在正则表达式中以^13代替^p

 

MS-HELP URL

Tty725 说:
欢迎转载,但请注明内容的来源或URL;
[转]”篇章,必须保留原始来源且勿添加本blog指向。
原文地址:https://www.cnblogs.com/Tty725/p/8397689.html