mysql正则 中括号转义_MySQL的正则中,"/"转义的有关问题 _ 搞代码

mysql的正则中,“/”转义的问题

教材上写的是,MySQL用/转义时,要使用两个//,因为MySQL要解释一个,然后正则要解释一个。

我有张表:

CREATE TABLE test (

id int(11) NOT NULL auto_increment,

name varchar(50) collate utf8_bin NOT NULL,

sex varchar(50) collate utf8_bin NOT NULL,

PRIMARY KEY (id)

) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_bin

然后我插入:

insert into test(name, sex) values('aaa/nbbb', 222222);

再用正则匹对:

select name from test where name regexp '//n';

什么都没有匹配到

然后我把//n改成/n就匹配到了:

select name from test where name regexp '/n';

这是为什么呢?

------解决方案--------------------

regexp /n 本身就是这样啊。

------解决方案--------------------

insert into test4(name, sex) values('aaa/nbbb', 222222);

insert into test4(name, sex) values('aaa//nbbb', 222222);

SELECT NAME FROM test4 WHERE NAME REGEXP '/n';

aaa/

bbb

SELECT NAME FROM test4 WHERE NAME REGEXP '//n';

'aaa/nbbb'

------解决方案--------------------

regexp /n

------解决方案--------------------

'/n' 代表回车符号,是一个字符,不是'/'和'n'两个字符

/代表/这个字符

单独匹配/的时候需要// 但是'/n'是一个回车字符 不需要//n

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值