最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mysql中用正则表达式进行搜索匹配教程(三)

来源:动视网 责编:小采 时间:2020-11-09 09:01:31
文档

mysql中用正则表达式进行搜索匹配教程(三)

mysql中用正则表达式进行搜索匹配教程(三):匹配特殊字符正则表达式语言由具有特定含义的特殊字符构成。我们已经看到.、[]、|和-等,还有其他一些字符。请问,如果你需要匹配这些字符,应该怎么办呢?例如,如果要找出包含.字符的值,怎样搜索?请看下面的例子:输入:select vend_name from
推荐度:
导读mysql中用正则表达式进行搜索匹配教程(三):匹配特殊字符正则表达式语言由具有特定含义的特殊字符构成。我们已经看到.、[]、|和-等,还有其他一些字符。请问,如果你需要匹配这些字符,应该怎么办呢?例如,如果要找出包含.字符的值,怎样搜索?请看下面的例子:输入:select vend_name from
 匹配特殊字符

正则表达式语言由具有特定含义的特殊字符构成。我们已经看到.、[]、|和-等,还有其他一些字符。请问,如果你需要匹配这些字符,应该怎么办呢?例如,如果要找出包含.字符的值,怎样搜索?请看下面的例子:

输入:

select vend_name from vendors where venr_name regexp '.’ order by vend_name;

输出:

分析:这并不是期望的输出,.匹配任意字符,因此每个行都被检索出来。

为了匹配特殊字符,必须用\\为前导。\\-表示查找-,\\.表示查找.。

\\也用来引用元字符(具有特殊含义的字符),如下表

注意:为了匹配反斜杠(\)字符本身,需要使用\\\。

匹配字符类

存在找出你自己经常使用的数字、所有字母符或所有数字字母字符等的匹配。为更方便工作,可以使用预定义的字符集,成为字符类。下表列出字符类以及他们的含义。

匹配多个实例

目前为止使用的所有正则表达式都试图匹配单次出现。如果存在一个匹配,该行被检索出来,如果不存在,检所不出任何行。但是有时需要对匹配的数目进行更强的控制。例如,你可能需要寻找所有的数,不管数中包含多少数字,或者你可能想寻找的一个单词并且还能够适应一个尾随的s(如果存在),等等。

这个可以用下表列出的正则表达式重复元字符来完成。

下面举个例子:

输入:

select prod_name from products where prod_name regexp '\\([0-9] sticks?\\)’ order by prod_name;

输出:

分析:正则表达式\\([0-9] sticks?\\)需要解说下。\\(匹配),[0-9]匹配任意数字(这个例子中为1和5), sticks?匹配 stick和 sticks(s后的?使s可选,因为?匹配它前面的任何字符的0次或1次出现),\\)匹配。没有,匹配 stick和 sticks会非常困难。

定位符

目前为止的所有例子都是匹配一个串中任意为止的文本。为了匹配特定位置的文本,需要使用下表列出的定位符:

例如,如果你想找出以一个数(包括以小数点开始的数)开始的所有产品,怎么办?简单搜索[0-9\\.](或[[:digit:]\\.])不行,因为它将在文本内任意位置查找匹配。解决办法是^定位符,如下所示:

输入:

select prod_name from products where prod_name regexp '^[0-9\\.]' order by prod_name;

输出:

分析:^匹配串的开始。因此,^[0-9\\.]只在.或任意数字为串中第一个字符时才匹配它们。没有^,则还要多检索出4个别的行。

【相关推荐】

  1. mysql中用正则表达式进行搜索匹配教程(一)

  2. mysql中用正则表达式进行搜索匹配教程(二)

  3. MySQL免费在线视频教程

  4. 韩顺平 2016年 最新MySQL基础视频教程

文档

mysql中用正则表达式进行搜索匹配教程(三)

mysql中用正则表达式进行搜索匹配教程(三):匹配特殊字符正则表达式语言由具有特定含义的特殊字符构成。我们已经看到.、[]、|和-等,还有其他一些字符。请问,如果你需要匹配这些字符,应该怎么办呢?例如,如果要找出包含.字符的值,怎样搜索?请看下面的例子:输入:select vend_name from
推荐度:
标签: 教程 匹配 mysql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top