肥涵

导航

Mysql-3 正则表达式

1、 正则表达式简介:

  正则表达式是用来匹配文本的特殊的字符集合,如果想从一个文本文件中提取电话号码,可以使用正则表达式来完成

 

2、正则表达式作用

   a、正则表达式的作用是匹配文本,将一个正则表达式与一个文本串进行比较

   b、mysql 用where 子句对正则表达式提供支持,允许指定正则表达式过滤select查找出的数据

 

3、mysql中正则表达式格式

  格式:

  在where 子句中使用regexp 关键字,后面接正则表达式字符

 

正则表达式与like区别

  -1:在where 中可以使用like(not like) 和 regexp(not regexp) 来匹配特定的内容

    a、like 匹配整列数据

    b、regexp 可以匹配列中任意位置的文本,regexp 更灵活强大

  -2:mysql 中正则表达式不区分大小写

  实例

  a、完成匹配

    查询 表food中的列product_name 包含文本1000的所有行

    select * from food where product_name REGEXP '1000';

  b、使用 ‘|‘ 来匹配两个串中的一个

    查询 表 food 中的列 product_name 包含1000 或 1001的数据

    select * from food whereh product_name REGEXP ’1000 | 1001‘;

  c、使用’[ ]‘,匹配几个字符串中的一个

    查询表food 中的列type 包含有 [ ]条件中的类型

    select *  from food where type REGEXP ’[猪、鸡、牛] 肉‘;

    说明: 正则表达式 [猪、鸡、牛] 肉,[猪、鸡、牛]  定义一组字符,它的意思是匹配 猪或鸡或牛

        因此,猪肉、鸡肉都匹配并且返回

  d、使用[^ ],不匹配几个字符中的任意一个

    查询表food 中的列type 不包含有 [^ ]条件中的类型

    select *  from food where type REGEXP ’[^猪、鸡、牛] 肉‘;

    说明: 正则表达式 [^猪、鸡、牛] 肉,[猪、鸡、牛]  定义一组字符,它的意思是不匹配 猪或鸡或牛

        因此,有羊肉则匹配且数据返回

  e、匹配一个范围

    匹配一个范围,使用集合操作,[1-9] 表示匹配1到9之间的任意一个数字,[a-z] 表示匹配a到z直接的任意一个字符

    查询表food 中的列num 范围在[ 01-19]的数据

    select * from food where num REGEXP 'num [01-19]';

  f、对于特殊字符的匹配

    对于特殊字符的匹配,那么待匹配的特殊字符前面要加’\\‘

    查询表food 中的列 describe 包含特殊字符 .

    select * from food where describe REGEXP '\\.'

  Mysql 支持的正则表达式字符集

   

 

  Mysql 支持的正则表达式字符集

  

 

   Mysql 支持的正则表达式字符集

  

 

  

   

 

posted on 2021-01-10 20:48  肥涵  阅读(122)  评论(0编辑  收藏  举报