7分钟快速入门史上最强正则表达式教程
2023-02-18 16:23:34 时间
今天有点标题党。下面是我整理的以前培训的录音,应对FreeSWITCH中的正则表达式,对于初学者基本上就够了。如果你在学FreeSWITCH Dialplan和正则表达式,可以看一看。
FreeSWITCH中使用PCRE(Perl Compatible Regular Express),大多数其它软件中的正则表达式也兼容这个版本,因而,这里讲的正则表达式也不限于在FreeSWITCH中使用。毕竟,对处理字符串来说,正则表达式是一个基本功能。
正则表达式使用模式匹配(Pattern Match),匹配到的内容可以被捕获(Capture),放到变量中,在后续使用时可以引用。根据场景不同,引用的方式有 1、2,或%1、%2,以及\1、\2等。在FreeSWITCH中使用1、2这种形式。
下面是常见的一些正则表达式。
^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
.
最后说明,“.” 匹配任意一个字符,如果你写了 .* ,
则它会匹配任意字符串
相关文章
- volatile引发的一个有趣的测试
- SSL/TLS 通信过程
- 大概是最详细的Glide流程图了
- 1505. 最多 K 次交换相邻数位后得到的最小整数
- [洗牌算法] - 从长度为m的int数组中随机取出n个元素,每次取的元素都是之前未取过的
- XMLHttpRequest has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ head
- Windows搭建Nginx直播推流服务器
- 记录一个当时没有做出来的超大数相加
- 课堂作业(1)
- idea中运行jar程序
- 大数据学习之路(电脑配置)
- 算法入门级别------栈
- 马蹄集------函数的幂
- Anaconda(windows版安装附带jupyter,spyder打开教程)
- 珠海先达智控WMS智能仓储管理系统
- 你想要的字符串展开算法在这
- java---File类笔记(简单介绍)
- 基于 Caddy 部署盘古 Admin 实现流量网关
- 应用于高速收发模块的并行光学&WDM波分光学技术
- 数据结构 || 顺序表