ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Mysql正则表达式整理

2020-11-23 15:02:41  阅读:248  来源: 互联网

标签:文本 name 正则表达式 Mysql 整理 regexp prod select


正则表达式:

1、背景:
正则表达式是用来匹配文本的特殊的串(字符集合)。如果你想从一个文本文件中提取电话号码,可以使用正则表达式;如果你需要查找名字中间有数字的所有文件,可以使用一个正则表达式;如果你想在一个文本块中找到所有重复的单词,可以使用一个正则表达式。
2、作用:
匹配文本,将一个模式(正则表达式)与一个文本串进行比较。mysql用where子句对正则表达式提供了初步的支持,允许你指定正则表达式过滤select检索出的数据。
3、例子:
3.1
select prod_name
from products
where prod_name regexp'1000|2000'
order by prod_name;

select * from XXX  where dt='20201118' and scztmc REGEXP '浙江大华机器人技术有限公司|杭州泛普生物科技有限公司';
3.2
为了匹配特殊字符,必须使用\\为前导。
\\- 表示查找-, \\. 表示查找. 。

select vend_name
from vendors
where vend_name regexp '\\.'
order by vend_name;

3.3
select prod_name
from products
where prod_name regexp '[[:digit:]]{4}'
order by prod_name;
如前所述,[:digit:]匹配任意数字,因而为数字的一个集合。
{4}确切地要求它前面的字符(任意数字)出现4次,所以[[:digit:]]{4}匹配连在一起的任意4位数字。
3.4
定位符:
上面的所有例子都是匹配一个串中任意位置的文本。为了匹配特殊位置的文本,可使用如下定位符。
^ 文本的开始
$ 文本的结尾
select prod_name
from products
where prod_name regexp '^[0-9\\.]'
order by prod_name;
这个是找出一个数(包括以小数点开始的数)开始的所有产品。

3、简单的正则表达式测试:
可以在不使用数据库表的情况下用select来测试正则表达式。
regexp检查总是返回0(没有匹配)或1(匹配)
例如:select 'hello' regexp '[0-9]';
这个例子显然将返回0(因为文本hello中没有数字)。

标签:文本,name,正则表达式,Mysql,整理,regexp,prod,select
来源: https://www.cnblogs.com/yusuf/p/14024462.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有