正则表达式

正则表达式是一种窥视字符串结构的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。

行定位符

^   表示行的开始

$   表示行的结束

如:

^tm  表示的是以tm开头的一个行 ,tm query is correct

tm$  则匹配的是 ,   query is correct by tm

tm   则以上两者都可以匹配

单词定界符

字符类

正则表达式是区分大小写的,忽略大小写则需要“[]”。

如,我需要匹配一个tm字符串,不区分大小写,则格式是:

[Tt][Mm]

选择字符( | )

类似程序开发中的“或”。同样,需要匹配一个tm字符串,不区分大小写。还可以写为:

t|Tm|M

连字符( - )

如果需要匹配一个字母,写为[a,b,c,d,e,f,g,…A,B,C,D,E,F,G….]会很繁琐也会很累。

使用连字符则表示一定范围的意思,则字母就可以写为:

[a-zA-Z]

排除字符( [^] )

匹配不符合规则的变量,类似取反的意思。

[^a-zA-Z]

表示的是匹配不以字母和下划线开头的变量名

限定符( ? * + {n, m} )

限界符

说明

Demo

?

匹配前面的字符零次或一次

colou?r  , 可以匹配colour 或 color

+

匹配前面的字符一次或多次

Go+gle   , 匹配 gogle 到 go…gle

*

匹配前面的字符零次或多次

go*gle   , 匹配 ggle 到 go…gle

{n}

匹配前面的字符n次

go{2}gle  , 只匹配 google

{n,}

匹配前面的字符至少n次

go{2,}gle  , 匹配 google 到 go…gle

{n,m}

匹配前面的字符至少n次,最多m次

go{0,2}gle  , 匹配 ggle , gogle  , google

点号字符( . )

匹配除换行符外的任意一个字符

说明

表达式

Demo

匹配以s开头、t结尾、中间包含一个字母的单词

^s.t$

sat、set、sit

匹配第一个字符时r,第三个是s,最后一个是t的字符

^r.s.*t$

rast、risat、restet

括号字符( ( ) )

你没猜错,和我们平时的计算式中括号的作用一样,改变计算的优先级

如,

(fa|mo)ther

先匹配的是括号内的|,再匹配括号外的。匹配的单词为:father,mother

转义字符( \ )

如“.”,“?”,“\”等字符已经有了自己的特殊含义,如果想使用本身的字符含义则需要在字符前加一个“\”来转义。

比如我们要匹配这么一个IP地址127.0.0.1

[0-9]{1,3}(\.[0-9]{1,3}){3}

反斜线( \ )

表示预定义字符集

预定义字符

说明

\d

任意一个十进制数,相当于[0-9]

\D

任意一个非十进制数

\s

任意一个空白字符(空格、换行符、换页符、回车、制表),即[\f\t\r\n]

\S

任意一个非空白字符

\w

任意一个单词字符,相当于[a-zA-Z0-9_]

\W

任意一个非单词字符

定义断言的限定符

限定符

说明

\b

单词定界符,用来匹配字符串中的某些位置

\B

非单词定界符序列

\A

总是能够匹配带搜索文本的起始位置

\Z

表示在未指定任何模式下的匹配的字符,通常是字符串的末尾位置

\z

子匹配字符串的末尾,而不考虑任何的换行符

\G

当前匹配的起始位置

你可能感兴趣的:(正则表达式)