`

MySQL正则表达式regexp

阅读更多
1. 连接MySQL

基本字符匹配
SQL> select prod_name from products where prod_name regexp '1000' order by prod_name;

单字符匹配
SQL> select prod_name from products where prod_name regexp '.000' order by prod_name;

区分大小写
SQL> select prod_name from products where prod_name regexp binary 'JetPACK .000';

进行OR匹配
SQL> select prod_name from products where prod_name regexp '1000|2000' order by prod_name;

匹配几个字符之一
SQL> select prod_name from products where prod_name regexp '[123] Ton' order by prod_name;
SQL> select prod_name from products where prod_name regexp '[1|2|3] Ton' order by prod_name;

匹配范围
SQL> select prod_name from products where prod_name regexp '[0-5] Ton' order by prod_name;

匹配特殊字符
SQL> select vend_name from vendors where vend_name regexp '.' order by vend_name;
SQL> select vend_name from vendors where vend_name regexp '\\.' order by vend_name;

匹配多个实例
s? 表示 s可选
SQL> select prod_name from products where prod_name regexp '\\([0-9] sticks?\\)' order by prod_name;
'[[:digit:]]{4}' 等价于 '[0-9][0-9][0-9][0-9]'
SQL> select prod_name from products where prod_name regexp '[[:digit:]]{4}' order by prod_name;

定位符
SQL> select prod_name from products where prod_name regexp '^[0-9\\.]' order by prod_name;

1. regexp 正则表达式
    其中 .是正则表达式语言中一个特殊字符,表示匹配任意一个字符
2. binary 在正则表达式中用来区分大小写
3. | 表示或者,可多个连用
4. [] 匹配几个字符之一,[]中的|可以省略
    [1|2|3] Ton可以缩写为[123] Ton,两者等价
    [1|2|3] Ton和1|2|3 Ton不等价
5. - 可以用来定义范围
    [0-9]等价于[0123456789],同理[a-z]
6. '.' 可以匹配特别的字符,例如 .、[]、|、- 等
    为了匹配特殊字符,必须用\\为前导。\\-表示查找-,\\.表示查找.,\\\匹配\。另外
    \\f  换页
    \\n  换行
    \\r  回车
    \\t  制表
    \\v  纵向制表
    多数正则表达式实现使用单个反斜杠转义特殊字符,以便能使用这些字符本身。但MySQL要求两个反斜杠(MySQL自己解释一个,正则表达式库解释另一个)。
7. 匹配字符类
    [: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])
8. 匹配多个实例
    *     0个或多个匹配
    +     1个或多个匹配(等于{1,})
    ?     0个或1个匹配(等于{0,1})
    {n}   指定数目的匹配
    {n,}  不少于制定数目的匹配
    {n,m} 匹配数目的范围(m不超过255)
9. 定位符
    ^       文本的开始
    $       文本的结尾
    [[:<:]] 词的开始
    [[:>:]] 词的结尾
10. regexp检查总是返回0(没有匹配)或者1(匹配)
    例如 select 'hello' regexp '[0-9]'; 结果返回0
11. like匹配整个串,regexp匹配字串。

分享到:
评论

相关推荐

    mysql正则表达式(regexp和rlike)的搜索功能实例分析

    本文实例讲述了mysql正则表达式(regexp和rlike)的搜索功能。分享给大家供大家参考,具体如下: 我们知道正则表达式是描述搜索模式的特殊字符串。 它是一个强大的工具,为我们提供一种简洁灵活的方法来识别基于模式...

    SQL 正则表达式及mybatis中使用正则表达式

    mysql 提供的模式匹配的其他类型是使用扩展正则表达式。 当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。 扩展正则表达式的一些字符是: “.”匹配任何单个的...

    MySQL中REGEXP正则表达式使用大全

    使用正则表达式操作mysql数据库非常方便,本篇文章给大家分享mysql中REGEXP正则表达式使用大全,感兴趣的朋友跟着小编一起看看吧

    MySQL使用正则表达式进行查询操作经典实例总结

    本文实例总结了MySQL使用正则表达式进行查询操作。分享给大家供大家参考,具体如下: 字符“^”匹配特定字符 SELECT * FROM fruits WHERE f_name REGEXP '^b'; 字符’$‘特定字符结尾 SELECT * FROM fruits WHERE...

    MySQL中使用replace、regexp进行正则表达式替换的用法分析

    本文实例讲述了MySQL中使用replace、regexp进行正则表达式替换的用法。分享给大家供大家参考,具体如下: 今天一个朋友问我,如果将数据库中查到的类似于“./uploads/110100_cityHotel_北京富豪华宾馆.jpg”这样的...

    MySQL正则表达式入门教程

    在MySQL中提供了 REGEXP 关键字来支持正则表达式,当然,只是一些很简单的正则啦。首先,我们构造一些测试数据。 代码如下:— 建表USE test;DROP TABLE IF EXISTS t_regcustomer;CREATE TABLE t_regcustomer ( id INT...

    Mysql中正则表达式Regexp常见用法

    主要介绍了Mysql中正则表达式Regexp常见用法,MySql REGEXP运算符匹配字符串,mysql正则REGEXP学习练习笔记,需要的朋友可以参考下

    简述MySQL 正则表达式

    MySQL 同样也支持其他正则表达式的匹配, MySQL中使用 REGEXP 操作符来进行正则表达式匹配。 如果您了解PHP或Perl,那么操作起来就非常简单,因为MySQL的正则表达式匹配与这些脚本的类似。 下表中的正则模式可应用于...

    mysql 正则表达式查询含有非数字和字符的记录

    比如我们有一张school表,里面有一个字段county_name,现在...下面向大家介绍mysql正则表达式的其他使用实例: 匹配名称含有1000的所有行 SELECT * FROM a1 WHERE name regexp '1000' 匹配以000结尾的所有行,(.正则

    mysql中如何使用正则表达式查询

    基本形式 属性名 regexp ‘匹配方式’ 正则表达式的模式字符 ^ 匹配字符开始的部分 eg1: 从info表name字段中查询以L开头的记录 select * from info where name regexp ‘^L’; eg2: 从info表name字段中查询以aaa开头...

    mysql正则表达式 LIKE 通配符

    由MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。

    MySql中使用正则表达式查询的方法

    Mysql 使用 REGEXP 关键字指定正则表达式的字符匹配模式。 1. 字符 ‘^’ 查询以特定字符或字符串开头的记录 SELECT * FROM user WHERE email REGEXP '^a' 字符 ‘^’ 匹配以特定字符或字符串开头的记录,以上...

    MYSQL使用正则表达式过滤数据

     Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符、字符串。 例如:select * from wp_posts where post_name REGEXP’hello’,可以检索出列post_name中所有包含hello的行 REGEXP’.og’ .是正则...

    mysql-udf-regexp:实现REGEXP _...()函数MySQL用户定义函数模块

    mysql-udf-regexp 该程序包将正则表达式函数用作MySQL用户定义函数(UDF)。...这些函数支持与MySQL REGEXP运算符相同的正则表达式语法,如MySQL手册的正则表达式附录中所述。 这些功能在名称上与Oracle SQL函数

    MySQL全面瓦解之查询的正则匹配详解

    同样的,它也支持其他正则表达式的匹配,我们在MySQL中使用 REGEXP 操作符来进行正则表达式匹配。用法和like相 似,但又强大很多,能够实现一些很特殊的、复杂的规则匹配。正则表达式使用REGEXP命令进行匹配时,如果...

Global site tag (gtag.js) - Google Analytics