mysql 正则表达式_MySQL(基础正则表达式)

a641807ab1826db922ae1c5578f360cb.png

什么是正则表达式嘞,引用一段百度百科的一段话;

正则表达式,又称规则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

在我的理解中:正则表达式的意思是我可以快速把相同特征的内容都筛选出来。

选出来之后就可以同类型进行操作。

之前在做AI电话的时候,话术管理中就有正则表达式。就等同于把接通者的回答归类,然后进行同类答复;举例(仅供参考)

AI:****获得大礼包,您要领取吗。

接听者的回复可能:我不要/不要/不了/不想领取/不好意思

关键词就是“不”,通过正则把这“不”一类归在一起,用相同的回答AI再回复一下;

AI:好的,那就不打扰了。


1a9c57fed1144acc67e942ff5c97271a.png
开门第一图

f6cf1b691bf66078f79552b77b32f7ba.png
开门第2图

直接上例子,更明白;

下面的英文是用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
SELECT * FROM excel_db.test 软件是Navicat,可以下载试一下

1、找出开头是a的id

当然,Excel中可以做到,筛选开头是a;

MySQL中的like函数也OK,where id like 'a%'

那MySQL正则表达式呢

SELECT
	

5d72988c7a68e7db9e05c7f0e95d8b62.png
^x 以x开头

2、找出结尾是b的id

SELECT
	

d204a330a5b7d2d8eface76c3eaae2fa.png
x$ 以x结尾

3、包含d的id

SELECT
	

2d8d5be1b5640ecde5921856c967d425.png
'x' 包含x

小结:

是不是发现了规则,前面的内容都一样

SELECT * FROM excel_db.test WHERE id REGEXP

后面就开始变了,这才是核心内容;

SELECT * FROM excel_db.test WHERE id REGEXP '******'


4、找出是有d,但不是d结尾的

SELECT
	

e4539748a9dbd732412ffb56b93b36ce.png
x.y x y中间有一个字符

同理: 找出是有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
x.*y x y中间的任意个字符

6、至少含有2个pg的id

SELECT
	*
FROM
	excel_db.test
WHERE
	id REGEXP '(pg){2}';

fa20dfef55fa530f9c89c67bc6e1fe35.png
(x){y} 至少有y个x

小结:

找出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
x|y x或者y

8、找出有x,y,且x,y之间至多有3个字符

SELECT
	*
FROM
	excel_db.test
WHERE
	id REGEXP 'x.{0,3}y';

a9bf2e590b7b157d840f4edcc0e71281.png
{x,y} 中间最少有x个,最多有y个字符

以上只是几个基础元字符和对它们的一个简短的描述,还有许多其他的元字符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值