一、正则规则说明正则表达式(Regular Expression)是一种用于描述字符串模式的工具。在UC的场景下,正则表达式用于匹配主叫、被叫号码的格式类型,通过正则表达式的匹配、区分,根据设定的呼叫路由实现不同的呼叫场景。 正则表达式测试工具 : ① 正则表达式可视化工具 | 菜鸟工具 (jyshare.com) ②https://tool.oschina.net/regex/ | 语法 | 备注 | 翻译 |
|---|
| \d+ | | 匹配任意长度数字 | | \d{X} | X=号码长度(几个数字) | 匹配X长度(位数)数字 | | \d{a,b} | a、b为任意数字,a<b | 匹配a-b中的任意数字,a,b均为号码位数 | | [x-z] | x、z均为(0-9)中的数字,x<z | 匹配x-z中的任意一位数字 | | (.+) | | 匹配任意长度字符串(英文字母) | | ^ | 起始符 | 表示匹配字符串的开头(从这里开始匹配) | | $ | 终止符 | 表示匹配字符串的结束(从这里停止匹配) | | | | 逻辑标识 | 或 | | ?! | 逻辑标识 | 非(排除) | | \+ | 转译字符 | 代表"+" | | \@ | 转译字符 | 代表"@" | | \# | 转译字符 | 代表"#" | | \* | 转译字符 | 代表"*" |
1.基础正则基础正则涉及如下四类场景: a. 号码长度(位数)匹配 b. 号码前缀匹配 c. 特殊字符匹配 d. 字符串匹配 | 类型 | 案例 | 应用语法 | 表达式 |
|---|
| 号码长度 | 仅匹配8位号码 | \d{X} | ^(\d{8})$ | | 号码前缀 | 匹配8610前缀任意位数号码 | \d+ | ^(8610\d+)$ ^8610(\d+)$ | | 特殊字符 | 匹配+8610前缀11位号码 | \+,\d{X} | ^(\+8610\d{8})$ ^\+8610(\d{8})$ | | 字符串匹配 | 匹配abcd1234 | (.+),\d{X} | ^(.+)\d{4} |
● ^ 表示匹配字符串的开头 建议必写 ● \+ 表示匹配"+"字符(需要使用转义字符"") ● 8610 表示匹配字面值"8610" ● \d{8} 表示匹配8个数字字符 ● $ 表示匹配字符串的结尾 建议必写 2.复杂正则复杂正则涉及到或、非等逻辑标识的使用,适用于复杂号码规则场景: a. 多个位数号码 b. 多个前缀号码 c. 或 d. 非 | 类型 | 案例 | 应用语法 | 表达式 |
|---|
| 多个位数号码 | 匹配9开头的1-14位任意位数号码 | \d{a,b} | ^(9\d{0,13})$ |
● ^ 表示匹配字符串的开头 ● 9 表示匹配数字9 ● \d{0,13} 表示匹配0到13个数字字符(0到13位号码) ● $ 表示匹配字符串的结尾 | 类型 | 案例 | 应用语法 | 表达式 |
|---|
| 多个前缀号码 | 匹配1、2、3、4、5开头的1-14位任意位数号码 | [x,z],\d{a,b} | ^([1-5]\d{0,13})$ |
● ^ 表示匹配字符串的开头 ● [1-5] 表示匹配数字1到5中的任意一个 ● \d{0,13} 表示匹配0到13个数字字符(0到13位号码) ● $ 表示匹配字符串的结尾 | 类型 | 案例 | 应用语法 | 表达式 |
|---|
| 或 | 匹配8610前缀任意位数号码 或 匹配9开头的1-14位任意位数号码 | \d+,\d{a,b},| | ^(8610\d+|9\d{1,14})$ |
● ^ 表示匹配字符串的开头 ● (8610\d+|9\d{1,14}) 使用括号和竖线 "|" 表示两个不同的模式选择: ● 8610\d+ 匹配以 "8610" 前缀开头的任意位数号码,后面的数字可以是任意多个。 ● 9\d{1,14} 匹配以 "9" 开头的 1-14 位任意位数号码,后面的数字可以是 1 到 14 位。 ● $ 表示匹配字符串的结尾 | 类型 | 案例 | 应用语法 | 表达式 |
|---|
| 非 | 匹配 非 542、543、544、545开头的9位数号码 | \d{X},?!,| | (?!54(2|3|4|5))\d{6} $ |
● ^ 表示匹配字符串的开头 ● (?!54(2|3|4|5)) 排除以 "542"、"543"、"544" 或 "545" 开头的情况。 ● \d{6} 表示匹配六个数字字符 ● $ 表示匹配字符串的结尾 ?!判断当前位置后面的内容是否不符合指定的模式。如果不符合,则继续匹配;如果符合,则匹配失败。 ^ 表示匹配字符串的开?!判断当前位置后面的内容是否不符合指定的模式。如果不符合,则继续匹配;如果符合,则匹配失败。 下面是一些常见的使用方式: - 排除特定号码或正则:可以使用 (?!正则) 来排除某个特定的字符或字符串。例如,(?!\d{8}) 表示不匹配 "任意8位号码"。
- 排除多个类型:可以使用"或" | 来组合。例如,(?!正则1|正则2) 表示不匹配正则1、正则2两类模式。 ||||
|