`

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)的搜索功能。分享给大家供大家参考,具体如下: 我们知道正则表达式是描述搜索模式的特殊字符串。 它是一个强大的工具,为我们提供一种简洁灵活的方法来识别基于模式...

    MySQL正则表达式

    ### MySQL正则表达式详解 #### 一、引言 MySQL作为一款广泛使用的数据库管理系统,在进行数据查询时提供了丰富的功能支持。其中,正则表达式是处理文本数据的强大工具之一,能够帮助用户更加灵活地进行数据筛选。...

    MySQL的正则表达式

    MySQL 的正则表达式 MySQL 的正则表达式是 SQL 语言的一个子集,能够匹配基本的字符、字符串。以下是 MySQL 正则表达式的相关知识点: 1. 基本匹配:REGEXP 可以匹配基本的字符、字符串。例如:select * from wp_...

    在sqlserver2008r2版本中实现正则表达式

    首先,SQL Server 2008 R2的标准版并未内置正则表达式函数,这与某些其他数据库系统(如PostgreSQL或MySQL)不同。但是,我们可以借助T-SQL中的存储过程或者一些外部工具来弥补这个功能的缺失。 1. **使用 CLR ...

    正则表达式AndMySQL参考文档chm

    例如,MySQL的`REGEXP`使用的是Perl兼容的正则表达式(PCRE),而某些其他数据库系统可能使用POSIX标准。理解这些差异对于编写跨平台的代码至关重要。 总之,正则表达式和MySQL都是IT专业人士不可或缺的工具。熟练...

    MySQL正则表达式.pdf

    ### MySQL正则表达式知识点详解 #### 一、MySQL中正则表达式的使用场景与功能 MySQL中的正则表达式是一种强大的工具,主要用于文本搜索和数据处理任务中。通过使用正则表达式,用户可以执行复杂的字符串匹配操作,...

    正则表达式从入门到精通

    虽然标准SQL不直接支持正则表达式,但许多数据库系统如MySQL、PostgreSQL、Oracle和SQL Server提供了扩展函数来实现正则表达式的功能,如MySQL的`REGEXP`或SQL Server的`PATINDEX`。 在毕业设计中,正则表达式是一...

    MySql正则表达式的描述.pdf

    在MySQL中,正则表达式功能主要通过`REGEXP`运算符来实现。 1. **基础概念**: - **匹配字符**:如`hello`只匹配字符串`hello`。 - **特殊字符**:如`^`表示匹配字符串的开始,`$`表示匹配字符串的结束。 - **...

    正则表达式MySQL参考文档

    在MySQL中,正则表达式主要用于`WHERE`子句中的`REGEXP`或`RLIKE`操作符,使得我们可以根据模式匹配来查询数据。 首先,我们需要了解正则表达式的基本语法。在MySQL中,正则表达式遵循Perl兼容正则表达式(PCRE)...

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

    MySQL数据库作为最流行的开源数据库之一,提供了多种工具来执行这类操作,其中replace函数和regexp正则表达式是强大的工具。replace函数可以通过简单的字符串替换来更新数据,而regexp则可以使用复杂的正则表达式...

    MySQL正则表达式入门教程

    在MySQL中,使用`REGEXP`关键字进行正则表达式匹配: - 示例5展示了如何使用`.`匹配任意一个字符,`'^王'`表示以"王"开头的记录。 - 示例6演示了正则表达式的起始限定符`^`,它确保了名字必须以指定的字符开始。 - ...

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

    MySQL数据库支持使用REGEXP操作符进行正则表达式匹配,这是在数据库中进行文本匹配和搜索的强大工具。MySQL遵循POSIX标准,采用了Henry Spencer开发的正则表达式库,同时对其进行了扩展,以更好地适应SQL语句中的...

    正则表达式+MySQL参考文档

    除了`REGEXP`和`RLIKE`,MySQL还提供了`RLIKE`的反向操作`NOT RLIKE`和`NOT REGEXP`,用于匹配不满足正则表达式的行。 在使用正则表达式时,要注意不同数据库系统可能有不同的实现和兼容性。例如,MySQL的正则...

    MySQL查询正则表达式.pdf

    - MySQL查询语句中,可以使用`REGEXP`关键字配合正则表达式进行复杂的匹配操作,如`SELECT column FROM table WHERE column REGEXP 'pattern'`。 - 正则表达式广泛应用于数据清洗、数据分析、日志分析等领域。 5....

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

    MySQL支持使用`REGEXP`和`NOT REGEXP`(或者`RLIKE`和`NOT RLIKE`)操作符来进行正则表达式的模式匹配。 在SQL中,正则表达式有以下一些基本概念和特殊字符: 1. `.`:匹配任意单个字符,除了换行符。 2. `[...]`:...

    正则表达式从0到入门到精通全语言语法大全

    在MySQL数据库中,正则表达式的应用也非常广泛。可以使用REGEXP和RLIKE操作符来进行正则表达式的匹配。例如,"select 'Ban' REGEXP '^Ba*n'"用于匹配以Ba开头,n结尾的字符串,"select 'Bn' REGEXP '^Ba?n'"用于匹配...

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

    本文将详细探讨MySQL中正则表达式Regexp的一些常见用法和特点。 首先,正则表达式可以用来模糊匹配字符串。比如,如果我们想要查找包含“车友俱乐部”的记录,可以使用REGEXP运算符,这在功能上等同于LIKE运算符...

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

    在SQL查询中,我们可以使用`REGEXP`或`RLIKE`关键字来使用正则表达式。以下是一些经典实例,展示了如何利用正则表达式进行查询。 1. **字符“^”**:用于匹配字符串的开始。例如,`^b`将匹配所有以字母'b'开头的...

    mysql正则表达式 LIKE 通配符

    具体到MySQL的REGEXP和RLIKE操作符的用法,它们用来测试一个字符串是否符合某个正则表达式定义的模式。例如: - 使用“^”和“$”来匹配一个字符串的开始和结束,确保整个字符串完全符合模式。例如,“'^[bB]'”...

Global site tag (gtag.js) - Google Analytics