【MySql笔记】字符串中的转义字符‘\’

正则表达式判断字符串内是否含有转义字符’\‘

首先sql中‘\’字符与c语言、c++、java等编程语言中类似\\表示\,但sql中单独一个\出现在字符串中且无法组成有效转义字符\字符会被删去,能够组成转义字符时会进行转换无法显示在字符串中的会不显示

set @p="lo\1nc";
select @p;//输出lo1nc

set @p="lo\nc";
select @p;//输出loc

set @p="lo\\nc";
select @p;`//输出lo\nc

set @p="lo\\\nc";
select @p;//输出lo\c

set @p="\r";
select @p;//输出空但不为空

set @p="\\";
select @p;//输出\

当正则表达参数需要\时\\\\表示一个\多余或少于部分被删除,一个\需要几个\才能表示出来要看转义次数,字符串读取过程会针对/进行转义,但作为正则表达参数时会先针对\进行转义每两个\转义成一个\再针对字符串进行转义,参考以下案例

select "loc" regexp "^lo\\\c$";//输入0-3个匹配
select "lo\c" regexp "^lo\\\c$";//输入0-3个匹配
select "lo\\c" regexp "^lo\\\\\\\c$";//输入4-7个匹配
select "lo\\\c" regexp "^lo\\\\\\\c$";//输入4-7个匹配
select "lo\\\\c" regexp "^lo\\\\\\\\\\\c$";//输入8-11个匹配
select "lo\\\\\c" regexp "^lo\\\\\\\\\\\c$";//输入8-11个匹配
select "\r" regexp "\\\r";//输出1,匹配成功
select "\\" regexp "\\\\";//后边\少于4个报错

看不明白参考–>>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值