![a641807ab1826db922ae1c5578f360cb.png](https://i-blog.csdnimg.cn/blog_migrate/ec2684a17d56b26c1fc3a4214cc72dd6.jpeg)
什么是正则表达式嘞,引用一段百度百科的一段话;
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
在我的理解中:正则表达式的意思是我可以快速把相同特征的内容都筛选出来。
选出来之后就可以同类型进行操作。
之前在做AI电话的时候,话术管理中就有正则表达式。就等同于把接通者的回答归类,然后进行同类答复;举例(仅供参考)
AI:****获得大礼包,您要领取吗。
接听者的回复可能:我不要/不要/不了/不想领取/不好意思
关键词就是“不”,通过正则把这“不”一类归在一起,用相同的回答AI再回复一下;
AI:好的,那就不打扰了。
![1a9c57fed1144acc67e942ff5c97271a.png](https://i-blog.csdnimg.cn/blog_migrate/835498be96c76bb532506707e314022f.png)
![f6cf1b691bf66078f79552b77b32f7ba.png](https://i-blog.csdnimg.cn/blog_migrate/4ee762df388a2c9412e41887826612f8.jpeg)
直接上例子,更明白;
下面的英文是用Excel随机生成的,以下就称为 id;
qdkzxub, gfjxysd, gyfsbzw, ozbajti, vmctnd, wdvtutw, qxoueaz, pvklayo, zqdfkl, ymxpnd, tskoqse, hjrohqf, setkwyq, oqbgqvx, gfwkms, shcixbh, kwjaexu, iihpzrn, vxxxcx, hdszjek, rsdgsts, vminuvs, klzxlwx, ppypuof, pqgylpn, vsauizp, emdjze, qnpuf, heoxhj, pcqpxgz, cutahyw, lsnlwr, wqcbybm, csyiyte, jumhzip, yerrcfv, mtstgl, nxvlnzz, zmhevq, wksalzc, ipbnhfk, ljbrokv, voivype, fttcdbe, cnyeztq, egllhan, zzpwjcd, rypqhj, tjaqsa, qfvnoio, xuwyfcl, itglgcr, cbkdnl, ovlnx, rhujsk, zxzyxrl, pgpgbmj, hfixnhv, spngdr, xfhnwfz, vqiqtxg, setbumn, rwsosh, udshsz, uzlpwhy, enbzgki, flmfuaf, dhpgjab, vbgpjar, ockazbb, yriziv, juagwln, iglmsgk, eewplm, nbxjxcs, iyrhjgm, zkxkbc, mpskkrx, aumavo, xwovagu, unglxu, prgxyw, yepzhnz, scuexfw, ahvantm, tfqdrvy, rkekdfg, fhepybs, pnxfeb, pcoatz, uqmhrm, wugjixi, patbaip, nuzkfx, opimeum, tjmyonm, yucanae, phtvpwk, hxesepc, ougfowh, qbiijbq, wsfxpma, zijjahc, elnskg, brjptfr, uimtre, elmvyoi, mkotsoe, tegblte, eblfzbu, sooaa, zwavcil, qeftipo, jrzatba, kprcxkl, nlchxcg, bqoyqmt, awoplgn, kucbuaf, ximxseh, fvztnjt, kcqeagf, vdjxxnh, opwulzz, oyhedyo, hqeuhx, daqoiaw, ruoffuu, xmpaev, htlniwy, jgxitca, ntfbkxz
把这些id全都放在MySQL,test表中;
![ca882d7e1b63f2866b92b4ac16f72765.png](https://i-blog.csdnimg.cn/blog_migrate/f4bc8a762f69af07e65d57855f2d024f.png)
1、找出开头是a的id
当然,Excel中可以做到,筛选开头是a;
MySQL中的like函数也OK,where id like 'a%'
那MySQL正则表达式呢
SELECT
![5d72988c7a68e7db9e05c7f0e95d8b62.png](https://i-blog.csdnimg.cn/blog_migrate/52efe527f6dba28fa5e0fb116b9ef6f2.png)
2、找出结尾是b的id
SELECT
![d204a330a5b7d2d8eface76c3eaae2fa.png](https://i-blog.csdnimg.cn/blog_migrate/0bf2a7abc25e37961e4a8a452c103d5c.png)
3、包含d的id
SELECT
![2d8d5be1b5640ecde5921856c967d425.png](https://i-blog.csdnimg.cn/blog_migrate/6b468c9b49186b73468a42c681a817ec.jpeg)
小结:
是不是发现了规则,前面的内容都一样
SELECT * FROM excel_db.test WHERE id REGEXP
后面就开始变了,这才是核心内容;
SELECT * FROM excel_db.test WHERE id REGEXP '******'
4、找出是有d,但不是d结尾的
SELECT
![e4539748a9dbd732412ffb56b93b36ce.png](https://i-blog.csdnimg.cn/blog_migrate/68c833761ea5b13aa4d14ff8efa3c3e8.jpeg)
同理: 找出是有d,但不是d开头的,.提前就好;
SELECT
*
FROM
excel_db.test
WHERE
id REGEXP '.d';
5、找到含u,p的id,且u在p前;
SELECT
*
FROM
excel_db.test
WHERE
id REGEXP 'u.*e';
![585c82c2612f993e48fe176e640cc689.png](https://i-blog.csdnimg.cn/blog_migrate/2b27ad3fec5deb8f84513fc77cc7f418.png)
6、至少含有2个pg的id
SELECT
*
FROM
excel_db.test
WHERE
id REGEXP '(pg){2}';
![fa20dfef55fa530f9c89c67bc6e1fe35.png](https://i-blog.csdnimg.cn/blog_migrate/ec99b7d6da5effbc1398f35406597f13.png)
小结:
找出g开头,s结尾的id
SELECT
*
FROM
excel_db.test
WHERE
id REGEXP '^g.*s$';
有x、y, 但x y之间有2个字符
SELECT
*
FROM
excel_db.test
WHERE
id REGEXP 'x..y';
7、找出有ab或者有cd的id
SELECT
![1d908787192241d751cc4342934a0452.png](https://i-blog.csdnimg.cn/blog_migrate/86deddc04dadd0861163c280cbeec757.png)
8、找出有x,y,且x,y之间至多有3个字符
SELECT
*
FROM
excel_db.test
WHERE
id REGEXP 'x.{0,3}y';
![a9bf2e590b7b157d840f4edcc0e71281.png](https://i-blog.csdnimg.cn/blog_migrate/8bd0880c186ae4a95b6b5fd8a4344850.png)
以上只是几个基础元字符和对它们的一个简短的描述,还有许多其他的元字符。