正则表示式
一. 语法元字符和操作符
| 序号 | 操作符 | 说明 |
|---|
| 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)