Bootstrap

正则表达式

字符

语法说明实例匹配
一般字符匹配自身abcabc
.匹配任意字符(除换行符\n)a.cabc
\转义字符,使特殊字符失效a\.ca.c
[...]

字符集,匹配[]中任意字符。

[abc]或[a-c]

[^abc]:abc以外的字符

a[bc]d

abd

acd

 预定义字符集(\d\D\s\S\w\W)

语法说明实例匹配
\d数字,[0-9]a\dca1c
\D非数字[^\d]a\Dc

abc

\s空白字符,[<空格>\t\n\r\f\v\r]a\sba b
\S非空白字符,[^\s]a\Scabc
\w单词字符,[A-Za-z0-9]a\wcabc
\W非单词字符,[^\w]a\Wca c

 数量词(用在字符或(...)之后) 

语法说明实例匹配
*匹配前一个字符0或者无数次abc*

ab

abccc

+
匹配前一个字符1或者无数次
abc+

abc

abcc

?匹配前一个字符0或者1次abc?

ab

abc

{m}匹配前一个字符m次ab{2}c

abbc

{m,n}

匹配前一个字符m至n次

{0,m} 0到m次

{m,} :m到无限次

abc+

abc

abcc

边界匹配(不消耗待匹配字符串中字符) 

语法说明实例匹配
^

匹配字符串开头

在多行匹配中匹配每一行开头

^abc

abc

$

匹配字符串末尾

在多行匹配中匹配每一行末尾

abc$

abc

\A仅匹配字符串开头\Aabc

abc

\Z仅匹配字符串结尾abc\Z

abc

\b匹配\w和\W之间a\b!bc

abc

\B[^\b]a\Bbc

ab

abc

逻辑分组

语法说明实例匹配
|

|左右表达式任意匹配一个

总是先匹配左边的,匹配到左边则跳过右边表达式
如果没有加(),|则匹配整个正则表达式

abc|dfe

abc

dfe

(...)被()括起来的表达式作为一个分组,分组编号依次+1。()作为整体,后面可以接量词。表达式中的|仅在()该组有效

(abc){2}

(abc|edf)

abcabc

def

(?P<name>...)除原有编号,在起一个别名name(?P<id>abc)

abc

(?P=name)

引用name匹配到的字符串

(?P<id>\d)abc(?P=id)

1abc1

5abc5

\<number>引用编号为<number>匹配到的字符串

(\d)abc\1

2abc2

;