# 正则表达式语法
在自定义敏感数据规则时，系统支持通过正则表达式进行自定义敏感数据发现规则。
正则表达式是一套用于描述文本匹配模式的规则。在定义敏感发现规则时，您可以通过正则表达式来描述敏感数据的特征，系统会自动扫描并匹配符合这些特征的数据。
表1常用语法说明 
| **语法**              | **含义**               | **匹配示例**                          |
|:---|:---|:---|
| .                   | 匹配任意一个字符（换行符除外）      | 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                 |
   
表2敏感数据发现常用正则示例 
| **数据类型**   | **正则表达式**                                                                                | **说明**            |
|:---|:---|:---|
| 身份证号       | \\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格式            |
   
表3配置注意事项 
| **注意事项** | **说明**                                                |
|:---|:---|
| 转义特殊字符   | 如需匹配.、\*、+、?、\\、(、)等保留字符本身，需在前面加\\进行转义，如\\.匹配点号       |
| 中文匹配     | 使用 \[\\u4e00-\\u9fa5\]表示单个中文汉字                        |
| 不区分大小写   | 在表达式前加(?i)，如(?i)abc可匹配abc、ABC、Abc                     |
| 匹配方式     | 系统默认采用完全匹配，无需手动添加\^和$。如需匹配字段中的部分内容，请使用.开头和结尾，如.身份证.\* |
   
