正则表达式的简单语法

正则表达式

语法

正则表达式使用单个字符串描述匹配一系列符合过滤逻辑规则的字符串

普通字符

没有显式指定为元字符的所有可打印和不可打印字符

非打印字符

\f

匹配一个换页符

\n

匹配一个换行符

\r

匹配一个回车符

\t

匹配一个制表符

\v

匹配一个垂直制表符

\s

匹配一个空白符(空格、制表符、换页符)

\S

匹配任何非空白字符

限定符

*

匹配前面的子表达式零次或多次

+

匹配前面的子表达式一次或多次

?

匹配前面的子表达式零次或一次

{ }

匹配前面的字符限定次

{m,n}

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

{m,}

前面的字符最少匹配 m 次且最多匹配无限次

定位符

^

匹配行首,即开始位置

$

匹配行尾,即结束位置

\b

匹配单词边界

\B

匹配非单词边界

修饰符

i

不区分大小写(ignore)

g

全局匹配(global)

m

多行匹配(multi line)

s

特殊字符圆点 . 中包含换行符 \n

或运算符

| 匹配前面或后面的字符(子表达式)

元字符

\

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

.

匹配一个任意字符(除换行符)

\d

匹配一个数字字符

\D

匹配一个非数字字符

\w

匹配一个字母、数字、下划线

\W

匹配一个非字母、数字、下划线

字符类

[xyz]

匹配所包含的任意字符

[^xyz]

匹配未包含的任意字符

[x-z]

匹配指定范围内的任意字符

[^x-z]

匹配不在指定范围内的任意字符

贪婪匹配

在限定符后面不加?,尽可能多的匹配

懒惰匹配

在限定符后面加?,尽可能少的匹配