Home > Database > Mysql Tutorial > body text

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

巴扎黑
Release: 2017-05-04 17:25:31
Original
1699 people have browsed it

匹配特殊字符

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

输入:

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

输出:

QQ截图20170504142944.png

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

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

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

QQ截图20170504144046.png

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

匹配字符类

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

QQ截图20170504144627.png


匹配多个实例

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

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

QQ截图20170504145013.png

下面举个例子:

输入:

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

输出:

QQ截图20170504145130.png

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

定位符

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

QQ截图20170504152902.png

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

输入:

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

输出:

QQ截图20170504154858.png

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

【相关推荐】

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

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

  3.  MySQL免费在线视频教程

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

The above is the detailed content of mysql中用正则表达式进行搜索匹配教程(三). For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact [email protected]
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!