`
flashdream8
  • 浏览: 678635 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySql正则表达式的描述

阅读更多

正则表达式(regex)是定义复杂查询的一个强有力的工具。
这里是一个简单的资料,它忽略了一些详细的信息。
正则表达式定义了一个字符串的规则。最简单的正则表达式不包含任何保留字。例如,

正则表达式hello只和字符串“hello”匹配。
一般的正则表达式使用了某些特殊的结构,所以它能匹配更多的字符串。例如,正则
表达式hello|word既能匹配字符串“hello”也能匹配字符串“word”。
举一个更复杂一点的例子,正则表达式B[an]*s可以匹配字符串“Bananas”、“Baaaaa
s”
、“Bs”以及其他任何以B开头以s结尾的字符串,中间可以包括任意个a和任意个n的组
合。
一个正则表达式中的可以使用以下保留字
^
所匹配的字符串以后面的字符串开头
mysql> select "fonfo" REGEXP "^fo$";      -> 0(表示不匹配)
mysql> select "fofo" REGEXP "^fo";       -> 1(表示匹配)
$
所匹配的字符串以前面的字符串结尾
mysql> select "fono" REGEXP "^fono$";     -> 1(表示匹配)
mysql> select "fono" REGEXP "^fo$";      -> 0(表示不匹配)
.. 
匹配任何字符(包括新行)
mysql> select "fofo" REGEXP "^f.*";       -> 1(表示匹配)
mysql> select "fonfo" REGEXP "^f.*";      -> 1(表示匹配)
a*
匹配任意多个a(包括空串)
mysql> select "Ban" REGEXP "^Ba*n";       -> 1(表示匹配)
mysql> select "Baaan" REGEXP "^Ba*n";      -> 1(表示匹配)
mysql> select "Bn" REGEXP "^Ba*n";       -> 1(表示匹配)
a+
匹配任意多个a(不包括空串)
mysql> select "Ban" REGEXP "^Ba+n";       -> 1(表示匹配)
mysql> select "Bn" REGEXP "^Ba+n";       -> 0(表示不匹配)
a?
匹配一个或零个a
mysql> select "Bn" REGEXP "^Ba?n";       -> 1(表示匹配)
mysql> select "Ban" REGEXP "^Ba?n";       -> 1(表示匹配)
mysql> select "Baan" REGEXP "^Ba?n";      -> 0(表示不匹配)
de|abc
匹配de或abc
mysql> select "pi" REGEXP "pi|apa";       -> 1(表示匹配)
mysql> select "axe" REGEXP "pi|apa";      -> 0(表示不匹配)
mysql> select "apa" REGEXP "pi|apa";      -> 1(表示匹配)
mysql> select "apa" REGEXP "^(pi|apa)$";    -> 1(表示匹配)
mysql> select "pi" REGEXP "^(pi|apa)$";     -> 1(表示匹配)
mysql> select "pix" REGEXP "^(pi|apa)$";    -> 0(表示不匹配)
(abc)*
匹配任意多个abc(包括空串)
mysql> select "pi" REGEXP "^(pi)*$";      -> 1(表示匹配)
mysql> select "pip" REGEXP "^(pi)*$";      -> 0(表示不匹配)
mysql> select "pipi" REGEXP "^(pi)*$";     -> 1(表示匹配)
{1}
{2,3}
这是一个更全面的方法,它可以实现前面好几种保留字的功能
a*
可以写成a{0,}
a+
可以写成a{1,}
a?
可以写成a{0,1}
在{}内只有一个整型参数i,表示字符只能出现i次;在{}内有一个整型参数i,
后面跟一个“,”,表示字符可以出现i次或i次以上;在{}内只有一个整型参数i,
后面跟一个“,”,再跟一个整型参数j,表示字符只能出现i次以上,j次以下
(包括i次和j次)。其中的整型参数必须大于等于0,小于等于 RE_DUP_MAX(默认是25
5)。
如果有两个参数,第二个必须大于等于第一个
[a-dX]
匹配“a”、“b”、“c”、“d”或“X”
[^a-dX]
匹配除“a”、“b”、“c”、“d”、“X”以外的任何字符。
“[”、“]”必须成对使用
mysql> select "aXbc" REGEXP "[a-dXYZ]";     -> 1(表示匹配)
mysql> select "aXbc" REGEXP "^[a-dXYZ]$";    -> 0(表示不匹配)
mysql> select "aXbc" REGEXP "^[a-dXYZ]+$";   -> 1(表示匹配)
mysql> select "aXbc" REGEXP "^[^a-dXYZ]+$";   -> 0(表示不匹配)
mysql> select "gheis" REGEXP "^[^a-dXYZ]+$";  -> 1(表示匹配)
mysql> select "gheisa" REGEXP "^[^a-dXYZ]+$";  -> 0(表示不匹配)
------------------------------------------------------------
[[.characters.]]
表示比较元素的顺序。在括号内的字符顺序是唯一的。但是括号中可以包含通配符,
所以他能匹配更多的字符。举例来说:正则表达式[[.ch.]]*c匹配chchcc的前五个字符

[=character_class=]
表示相等的类,可以代替类中其他相等的元素,包括它自己。例如,如果o和(+)是
一个相等的类的成员,那么[[=o=]]、[[=(+)=]]和[o(+)]是完全等价的。
[:character_class:]
在括号里面,在[:和:]中间是字符类的名字,可以代表属于这个类的所有字符。
字符类的名字有: alnum、digit、punct、alpha、graph、space、blank、lower、uppe
r、cntrl、print和xdigit
mysql> select "justalnums" REGEXP "[[:alnum:]]+";    -> 1(表示匹配)
mysql> select "!!" REGEXP "[[:alnum:]]+";        -> 0(表示不匹配)
[[:<:]]
[[:>:]]
分别匹配一个单词开头和结尾的空的字符串,这个单词开头和结尾都不是包含在alnum中
的字符也不能是下划线。
mysql> select "a word a" REGEXP "[[:<:]]word[[:>:]]";   -> 1(表示匹配)
mysql> select "a xword a" REGEXP "[[:<:]]word[[:>:]]";   -> 0(表示不匹配)
mysql> select "weeknights" REGEXP "^(wee|week)(knights|nights)$"; -> 1(表示
匹配)

 

《转自:http://tech.163.com/04/1118/11/15FH13VE0009rt.html

分享到:
评论

相关推荐

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

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

    MySql正则表达式的描述.pdf

    MySQL中的正则表达式(Regex)是一种强大的查询工具,用于定义字符串匹配的模式。这些模式可以用来进行复杂的文本搜索和替换操作。在MySQL中,正则表达式功能主要通过`REGEXP`运算符来实现。 1. **基础概念**: - ...

    完全自动的正则表达式编写工具

    例如,用户可能只需要提供一个简单的描述,如“匹配所有邮箱地址”,工具就能生成相应的正则表达式。 RegexBuddy是这类工具的代表之一,它提供了丰富的功能来辅助正则表达式的创建和测试。RegexBuddy.chm是一个帮助...

    MySQL正则表达式.pdf

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

    ASP_NET正则表达式

    - 正则表达式是一种模式匹配语言,通过特定的字符序列来描述字符串的模式。 - 常见的元字符如`^`(开始)、`$`(结束)、`.`(任意单个字符)、`*`(重复零次或多次)、`+`(重复一次或多次)和`?`(重复零次或一...

    正则表达式的用法

    正则表达式的强大之处在于它可以用来描述一类字符串的特征,而不是单一的字符串。 #### 常见的正则表达式基础库 - **PCRE (Perl Compatible Regular Expressions)**:一个与Perl兼容的正则表达式库,被广泛应用...

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

    1. MySQL正则表达式基础 MySQL中的正则表达式通过`REGEXP`或`RLIKE`操作符来实现。它们用于在`WHERE`子句中搜索列值中的文本模式。基本的正则表达式语法如下: - `^` 表示匹配字符串的开始。 - `$` 表示匹配字符串...

    基于PHP的正则表达式在线测试php版源码.zip

    【描述】:描述中提到的“基于PHP的正则表达式在线测试php版源码.zip”表明这是一个使用PHP编程语言编写的项目,它提供了用户友好的界面来执行正则表达式测试。通过这个平台,开发者可以方便地验证他们的正则表达式...

    精通Delphi文本处理:正则表达式的全面应用

    正则表达式是一种用于字符串搜索和操作的强大工具,它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。正则表达式广泛应用于数据验证、字符串提取和替换等场景中。在Delphi中,正则表达式的主要支持是...

    MySQL 字符串模式匹配 扩展正则表达式模式匹配

    总的来说,MySQL的字符串模式匹配和扩展正则表达式模式匹配是数据库查询中非常实用的功能,能够帮助用户以各种方式过滤和检索数据,满足各种复杂的需求。通过熟练掌握这些技巧,可以极大地提升SQL查询的灵活性和实用...

    帮助文档集合(SQL.chm,XML 指南.chm,正则表达式系统教程.CHM)

    通过阅读和实践这些教程,用户可以深化对SQL查询的理解,掌握XML的数据描述能力,并精通正则表达式的文本处理技巧。对于希望提升自己在数据库管理、Web开发或数据处理方面技能的人来说,这是一个不可多得的学习资料...

    数据采集 正则表达式 采集网页数据

    正则表达式(Regular Expression)是一种特殊的字符序列,可以用来描述一种字符串模式。它由各种字符和特殊符号组成,例如`.`表示任意单个字符,`*`表示前面的字符出现零次或多次,`+`表示前面的字符至少出现一次,`...

    数据库中使用正则表达式小结

    数据库中使用正则表达式是一种...在使用过程中,除了上述的知识点外,还应熟悉相关数据库系统的正则表达式方言,因为不同的数据库系统(如MySQL、PostgreSQL、Oracle等)对正则表达式的支持和实现细节可能有所差异。

    mysql基于正则实现模糊替换字符串的方法分析

    在标题和描述中提到的问题是关于使用正则表达式在MySQL中替换字符串,特别是涉及到HTML标签的替换。例如,我们可能有一个名为`name`的字段,其中包含`&lt;contact&gt;efg&lt;/contact&gt;`这样的字符串,我们想将其替换为`...

    文件处理,正则表达式,数据库Mysql大全.pdf

    2.1 概述:正则表达式由普通字符(例如字母和数字)和特殊字符(称为“元字符”)组成,用于描述字符串模式。 2.2 元字符:如`.`, `*`, `+`, `?`, `{}`, `[]`, `^`, `$`, `\`, `|`, `(`, `)`等,它们具有特殊含义...

    正则表达式匹配解析过程探讨分析(正则表达式匹配原理)

    正则表达式是一种强大的文本匹配工具,它通过一系列特殊字符的组合来构建表达式,用以描述和匹配特定的字符串模式。正则表达式的强大之处在于它几乎可以匹配任何形式的文本,从简单的字母数字组合到复杂的字符串结构...

    全程正则表达式匹配的网络采集程序源代码

    标题中的“全程正则表达式匹配的网络采集程序源代码”揭示了这是一个使用正则表达式进行网络数据抓取的应用程序。在IT领域,网络采集(也称为网络爬虫或网络蜘蛛)是一种自动化技术,用于从万维网中提取大量信息。这...

    css`html`javascript`正则表达式`mysql`jQuery参考手册.rar

    《CSS、HTML、JavaScript、正则表达式、MySQL和jQuery参考手册》是一份全面的IT技术资源,包含多个领域的核心知识。以下是对这些关键领域的详细解释: **CSS(层叠样式表)**: CSS是用于描述HTML或XML(包括如SVG...

Global site tag (gtag.js) - Google Analytics