正则表达式语法
在自定义敏感数据规则时,系统支持通过正则表达式进行自定义敏感数据发现规则。
正则表达式是一套用于描述文本匹配模式的规则。在定义敏感发现规则时,您可以通过正则表达式来描述敏感数据的特征,系统会自动扫描并匹配符合这些特征的数据。
| 语法 | 含义 | 匹配示例 |
|---|---|---|
| . | 匹配任意一个字符(换行符除外) | a.c可匹配abc、a1c、a-c |
| \d | 匹配任意一个数字(等价于[0-9]) | \d{6}可匹配123456 |
| \D | 匹配任意一个非数字 | \D+可匹配abc、姓名 |
| \w | 匹配一个字母、数字或下划线 | \w+可匹配abc123_ |
| \s | 匹配一个空白字符(空格、换行、制表符等) | a\sb可匹配a b |
| [abc] | 匹配方括号中的任意一个字符 | [abc]可匹配a、b或c |
| [0-9] | 匹配指定范围内的任意一个字符 | [0-9]匹配任意数字,等价于\d |
| [a-zA-Z] | 匹配任意一个英文字母 | [a-zA-Z]{3}可匹配ABC、xyz |
| [\u4e00-\u9fa5] | 匹配任意一个中文汉字 | [\u4e00-\u9fa5]{2,4}可匹配张三、欧阳雪 |
| [^abc] | 匹配除方括号中字符外的任意一个字符 | [^0-9]匹配非数字字符 |
| ^ | 匹配字符串的开头 | ^[0-9]匹配以数字开头的字符串 |
| $ | 匹配字符串的结尾 | [0-9]$匹配以数字结尾的字符串 |
| ? | 前面的字符出现0次或1次 | a?可匹配""或a |
| {n} | 前面的字符恰好出现n次 | \d{11}匹配11位数字 |
| {n,m} | 前面的字符出现n到m次 | \d{6,10}匹配6到10位数字 |
| | | 或逻辑,匹配左边或右边 | 男|女可匹配男或女 |
| () | 分组,将多个字符视为一个整体 | (ab)+可匹配ab、abab |
| \ | 转义,匹配特殊字符本身 | \.匹配点号;\*匹配星号 |
| (?i) | 不区分大小写 | (?i)abc可匹配abc、ABC |
| 数据类型 | 正则表达式 | 说明 |
|---|---|---|
| 身份证号 | \d{15}|\d{17}[\dXx] | 15位或18位均可匹配 |
| 中文姓名 | [\u4e00-\u9fa5]{2,4} | 2到4个中文汉字 |
| 手机号 | 1[3-9]\d{9} | 1开头,第二位3-9,后跟9位数字 |
| 固定电话 | 0\d{2,3}-\d{7,8} | 如:010-12345678 |
| 邮箱地址 | \w+@\w+\.\w+ | 简单邮箱格式 |
| 银行卡号 | \d{16,19} | 16到19位纯数字 |
| 组织机构代码 | [0-9A-Z]{8}[-]?[0-9X] | 如:12345678-9 |
| 营业执照号(18位) | [0-9A-Z]{18} | 18位数字或字母 |
| 邮政编码 | \d{6} | 6位纯数字 |
| 金额(两位小数) | \d+(\.\d{1,2})? | 如:123、123.45 |
| IPv4地址 | ((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?) | 标准IP格式 |
| 注意事项 | 说明 |
|---|---|
| 转义特殊字符 | 如需匹配.、*、+、?、\、(、)等保留字符本身,需在前面加\进行转义,如\.匹配点号 |
| 中文匹配 | 使用 [\u4e00-\u9fa5]表示单个中文汉字 |
| 不区分大小写 | 在表达式前加(?i),如(?i)abc可匹配abc、ABC、Abc |
| 匹配方式 | 系统默认采用完全匹配,无需手动添加^和$。如需匹配字段中的部分内容,请使用.开头和结尾,如.身份证.* |