zoukankan      html  css  js  c++  java
  • MySQL的正则表达式

    1.  Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符、字符串。
    例如:select * from wp_posts where post_name REGEXP 'hello',可以检索出列post_name中所有包含hello的行
        REGEXP '.og'  .是正则表达式中里一个特殊的字符。它表示匹配一个字符,因此,dog,hog,mog等等都能匹配。


    注意:
        关于LIKE和REGEXP的区别:LIKE匹配整个列。如果被匹配的文本仅在列值中出现,LIKE并不会找到它,相应的行也不会返回(当然,使用通配符除外)。而REGEXP在列值内进行匹配,如果被匹配的匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回,这时一个非常重要的差别(当然,如果适应定位符号^和$,可以实现REGEXP匹配整个列而不是列的子集)。
        关于大小写的区分:MySQL中正则表达式匹配(从版本3.23.4后)不区分大小写 。如果要区分大小写,应该使用BINARY关键字,如where post_name REGEXP BINARY 'Hello .000'


    2.关于OR匹配
        为了搜索两个串之一,使用|, 如,select * from products where pro_id REGEXP '1000|2000'  ORDER BY pro_id;
        这样就1000和2000都能匹配并返回,当然,使用多个|就可以匹配多个串


    3.只是匹配几个字符[]
        例如,这样将要匹配[0123456789]可以匹配0到9,[1-4][4-9]也是合法的范围。此外,范围不一定只是数值的,[a-z]匹配任意字母字符
        如:SELECT prod_name FROM products WHERE prod_name REGEXP '[1-5] Ton' ORDER BY prod_name;


    4.匹配特殊字符使用\进行转义
        \\.能够匹配.
        \\f换页
        \\n换行
          \\r回车
        \\t制表
        \\纵向制表


    注意:为了匹配\本身,需要使用\\\


    5.匹配字符类
        [:alnum:]    任意字母和数字(通[a-zA-Z0-9])
        [:alpha:]     任意字符(同[a-zA-Z])
         [:blank:]    空格和制表符(同[\\t])
         [:digit:]     任意数字(同[0-9])
         [:lower:]  任意小写字母
         [:upper:]   任意大写字母
         [:space:]   包括空格在内的任意空白字符


    6.匹配多个实例,关于重复元字符
    *      0个或者多个匹配
    +     1个或者多个匹配(等于{1,})
    ?     1个或者多个匹配(等于{0,1})
    {n}    指定数目的匹配
    {n,}   不少于指定数目的匹配
    {n,m}    匹配数目的范围(m不超过255)


    例子:  select prod_name from products where prod_name REGEXP '[[:DIGIT:]]{4}'   ,如前所述,[:digit:]匹配任意素子,因而它为数字的一个几何。{4}确切的要求它前面的字符(任意数字)出现3此,所以[[:digit:]]{4}匹配连在一起的任意4位数字,当然,上面的例子也可以这样写REGEXP '[0-9][0-9][0-9][0-9]'


    7.定位符
    ^  文本的开始
    &  文本的结尾
    [[:<:]]   词的开始
    [[:>:]]   词的结尾
    通过使用这些定位符,能够使REGEXP起类似LIKE的作用

  • 相关阅读:
    Samba 4.0 RC3 发布
    SymmetricDS 3.1.7 发布,数据同步和复制
    Express.js 3.0 发布,Node.js 的高性能封装
    GIFLIB 5.0.1 发布,C语言的GIF处理库
    jQuery UI 1.9.1 发布
    SVN Access Manager 0.5.5.14 发布 SVN 管理工具
    DynamicReports 3.0.3 发布 Java 报表工具
    HttpComponents HttpClient 4.2.2 GA 发布
    AppCan 2.0 正式发布,推移动应用云服务
    Ruby 2.0 的新功能已经冻结
  • 原文地址:https://www.cnblogs.com/fuyunbiyi/p/2423489.html
Copyright © 2011-2022 走看看