正则表示式
一. 语法元字符和操作符
序号 |
操作符 |
说明 |
1 |
. |
匹配除了换行符以外的任意字符 |
2 |
* |
匹配前面的元素零次或多次(>=0) |
3 |
+ |
匹配前面的元素一次或多次(>=1) |
4 |
? |
匹配前面的元素零次或一次(0|1) |
5 |
^ |
匹配字符串的开头 |
6 |
$ |
匹配字符串的结尾 |
7 |
[] |
用于定义字符类,匹配方括号中的任意一个字符(取值范围) |
8 |
() |
用于捕获分组,可以在匹配结果中提取特定部分(作为一个整体) |
9 |
\ |
用于转义特殊字符,如 \. 匹配点号 |
10 |
{} |
出现次数的范围 {m,n} | {n} | {m,} |
11 |
| |
或,两者其一 |
12 |
[^] |
过滤字符,[]中使用 ^ (^ 必须用在[]中的第一位),表示不希望出现字符 |
二. 常用表达式
1. 邮箱地址:^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
2. 手机号码:^1[3456789]\d{9}$
3. 日期(yyyy-mm-dd):^\d{4}-\d{2}-\d{2}$
4. MAC地址:^([0-9A-F]{2})(-[0-9A-F]{2}){5}$
5. 中文字符:[/u4e00-/u9fa5]
三. 案例
1. ^ab.[0-9]$ -- 表示 ab 开头,中间任意1个字符后面是0-9任意一个数字
2. ^(bc|df)a$ -- 表示匹配结果是 bca 或 dfa
3. ^a[^0-9]%$ -- 表示 a 和 % 中间不能出现数字
4. ".*?\\((.*)\\)$" -- java 匹配 (xxx)结尾的字符串
5. "^[\u4E00-\u9FA5A-Za-z0-9.]{1,255}$" -- 中文、字母、数字(1-255)