• [MySQL] 用正则表达式进行搜索


    正则表达式的作用就是匹配文本,讲一个模式(正则表达式)与一个文本串进行比较。

    基本字符匹配

    SELECT 列名 FROM 表名 WHERE 列名 REGEXP 条件 ORDER BY 列名;

      形式与LIKE相同,只不过REGEXP后面跟的条件为正则表达式。

    差别:

      LIKE匹配整个列。如果被匹配的文本在列值中出现,LIKE不会找到它,相应的行也不会被返回(除非使用通配符)。

      REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP会找到它,相应的行将被返回。

      正则表达式不区分大小写,如果需要区分则要使用BINARY关键字。如 REGEXP BINARY + 正则表达式条件。

    进行OR匹配

      使用正则表达式符号‘|’将条件并列。

      例如 1000 OR 2000 = 1000|2000 

    匹配几个字符之一

      使用[]来定义一组字符

      例如 [123]abc = 1abc 或 2abc 或 3abc

      [123]abc = [1|2|3]abc

    匹配除指定字符外的任何东西

      [^123] 匹配除123以外的任何东西

    匹配范围

      [0123456789] = [0-9]

    匹配特殊字符

      '.'匹配任意字符

      \- 表示查找-

      \. 表示查找.

      \ 表示查找

      

    匹配字符类

      类              说明

     [:alnum:]           任意字母和数字[a-zA-Z0-9]

     [:alpha:]            任意字符[a-zA-Z]

     [:blank:]            空格和制表[\t]

     [:cntrl:]              ASCII控制字符(ASCII 0到31和127)

     [:digit:]            任意数字[0-9]

     [:graph:]            与[:print:]相同,但不包含空格

     [:lower:]             任意小写字母[a-z]

     [:print:]            任意可打印字符

     [:punct:]             既不在[:alnum:]又不在[:cntrl:]中的任意字符

     [:space:]            包含空格在内的任意空白字符[\f\n\r\t\v]

     [:upper:]            任意大写字母[A-Z]

     [:xdigit:]             任意十六进制数字[a-fA-F0-9]

    匹配多个实例

      重复元字符

      元字符                说明

       *               0个或多个匹配

       +                 1个或多个匹配{1,}

       ?                 0个或1个匹配{0, 1}

       {n}               指定数目的匹配

       {n,}                                                  不少于指定数目的匹配

       {n, m}             匹配数目的范围(m不超过255)

    定位符

      匹配指定位置的文本

      定位元字符

      元字符                  说明

       ^                  文本的开始

       $                    文本的结尾

       [[:<:]]                 词的开始

       [[:>:]]                 词的结尾  

      ^有两种用法,在集合中(用[和]定义),用它来否定该集合,否则,用来指串的开始处

      

  • 相关阅读:
    基本内置类型
    多维数组
    数组
    迭代器
    标准库类型 vector
    标准库类型 string
    运算符优先级表
    类型转换
    sizeof 和逗号运算符
    位运算符
  • 原文地址:https://www.cnblogs.com/immjc/p/7347795.html
Copyright © 2020-2023  润新知