正则表达式
Dialplan 使用 Perl 兼容的正则表达式(PCRE, Perl-compatible regular expressions)匹配。熟悉编程的同学肯定已经很熟悉它了,为了方便不熟悉的同学,在这里仅作简单介绍:
^1234$ ^ 匹配字符串开头,$ 匹配结尾,所以本表达式严格匹配 1234
^1234|5678$ | 是或的意思,表示匹配 1234 或 5678
^123[0-9]$ [ ] 表式匹配其中的任意一个字符,其中的 - 是省略的方式,表示 0 到 9,它等于 [0123456789]
也就是说它会匹配 1230,1231,1232 ... 1239
^123\d$ 同上,\d 等于 [0-9]
^123\d+$ + 号表示1个或多个它前面的字符,因为 + 前面是 \d,所以它就等于1个或多个数字,实际上,
它匹配任何以123开头的至少4位数的数字串,如1230,12300,12311,123456789等
^123\d*$ *号与+号的不同在于,它匹配0个或多个前面的字符。
所以,它匹配以123开头的至少3位数的数字串,如 123,123789
^123 跟上面一样,由于没有结尾的$,它匹配任何以123开头的数字串,但除此之外,它还匹配后面是字母的情况,如 123abc
123$ 匹配任何以123结尾的字符串
^123\d{5}$ {5}表示精确匹配5位,包含它前面的一个字符。在这里,它匹配以123开头的所有8位的电话号码
^123(\d+)$ ( )在匹配中不起作用,跟^123\d+是相同的,但它对匹配结果有作用,
匹配结果中除123之外的数字都将存储在$1这个变量中,在下一步使用
^123(\d)(\d+)$ 如果用它跟12345678匹配,则匹配成功,结果是 $1 = 4, $2 = 5678