正则表达式是一种用于文本匹配的通用语言。
正则表达式的基本组成部分:
正则表达式 | 描述 | 例子 |
^ |
行起始标记 |
^abc匹配以abc起始的行 |
$ |
行结束标记 |
abc$匹配以abc结束的行 |
. |
匹配任意一个字符 |
abc . 匹配abc后跟任意一个字符 |
[ ] |
匹配包含在[字符]之中的任意一个字符 |
abc[de] 匹配abcd 或者 abce |
[ ^ ] |
匹配除[^字符]之中的任意一个字符 |
abc[^de] 匹配除abcd 或 abce 外abc后跟任意一个字符 |
[ - ] |
匹配[ - ]之中制定范围中的任意一个字符 |
abc[d-g] 匹配abc后跟d-g 中任意单个字符 |
? |
匹配之前的项1次或者0次 |
co?l 匹配 col 或者 cl (1次或者0次) |
+ |
匹配之前的项1次或者多次 |
go+al 匹配 goal 或者gooooal ,o个数大于等于1 |
* |
匹配之前的项0次或者多次 |
ab*c 匹配abc、abbc、或者ac. *之前字符个数大于等于0 |
( ) |
创建一个用于匹配的子串 |
exam(inations)? 匹配 exam 、examinations |
{ n } |
匹配之前的项n次 |
[0-9]{3} 匹配任意一个三位数 |
{ n, } |
之前的项至少需要匹配n次 |
[0-9]{3,} 匹配至少一个三位数
|
{ n,m } |
指定之前的项必须匹配的最少和最多次数 |
[0-9]{3,5} 匹配一个三位数到五位数之间的数
|
| |
交替匹配 | 两边任意一项 |
oct [1st|2nd] 匹配 oct 1st 或者 oct 2nd |
|
转义字符,将上面介绍的特殊字符进行转义 |
a.b 匹配" a.b " 而不是a\\b |
正则表达式 | 描述 | 实例 |
[:alnum:] | 字母与数字组合 | [[:alnum:]]+ |
[:alpha:]
|
字母字符(包括大小写字母) |
[[:alpha:]]{4}
|
[:blank:] | 空格与制表符 |
[[:blank:]]*
|
[:digit:] | 数字字符 |
[[:digit:]]?
|
[:lower:]
|
小写字母 |
[[:lower:]]*
|
[:upper:]
|
大写字母 |
[[:upper:]]{1,3}
|
[:punct:]
|
标点符号 |
[[:punct:]]
|
[:space:]
|
空白字符() |
[[:space:]]+
|