MySQL中正则表达式的简单用法

mysql正则表达式的简单用法:

  a) select sno from student where sname REGEXP 'aa';这句语法很像like,regexp后所跟的东西作为正则表达式处理:查询包含 aa的所有行;

  b) where sname regexp '.000';这里使用了正则表达式中的一个字符 . ,它表示匹配任意一个字符,如1000,2000,3000等;

  c) mysql中的正则表达式匹配不区分大小写,为区分大小写,可使用BINARY关键字,如where sname regexp BINARY 'AbC';

  d) 使用 | ,这是正则表达式的or操作,如select ... regexp '1000 | 2000 | 3000';

  e) 使用 [] ,如select ... regexp '[123]ton';[123]表示匹配1或2或3,因此,可以返回1ton或2ton或 3ton;实际上[]是or的另一种形式,[123]ton其实是[1|2|3|]ton的缩写,两者意思完全相同;

  f) [^123] 表示匹配除这些字符外的其他字符;

  g) 匹配范围可用[0-9],如select ... regexp '[1-4]';也可以是[a-z];

  h) 匹配特殊字符(即转义):可以用 \\ 这个符号,可以用 \\ .表示查找 . ,\\- 表示查找 - ;需要转义 的包括 . | [] 等;

  i) \\ 也可以用来引用元字符(具有特殊含义的字符),如: \\f换页   \\n换行  \\r回车  \\t 制表 \\v 纵向制表 \\\反斜杠;

    

  j) 匹配多个实例:

      

     如:select ... regexp '\\([0-9]sticks?\\)';可返回的结果有:mm(1stick)或mm(5sticks),\\)表示匹配),sticks?匹配stick和sticks(?是使s可选,因为?匹配它前面的任何字符的0次或1次出现); 

     再如:select ...regexp '[[:digit:]]{4}',表示匹配连在一起的4位数字,也可以是'[0-9][0-9]   [0-9][0-9]';

  k) 需注意的是:编写某个特殊的表达式几乎总是有不止一种方 法;

  l) 匹配特定位置的字符,如:

 

      如要找一个数字或小数点开头的,可以:

         select ... regexp '^[0-9\\.]';

  m) regexp检查总是返回0(没有匹配)或1(匹配),测试如下:

     select 'hello' regexp '[0-9]';

     将返回0,因为没有匹配;

  n) 利用^和$,可以使regexp的作用和like一样,通过用^开始 每个表达式,用$来结束每个表达式;



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值