码迷,mamicode.com
首页 > 数据库 > 详细

正则表达式【UltraEdit / MySQL / 数据清洗】

时间:2020-05-13 15:17:24      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:reg   功能   模糊匹配   单个字符   常用   表格   --   字符   where   

1. like 与 regexp比较

like有的功能,regexp都有;regexp还能进行更精确的匹配

-- 模糊匹配两者完全等价
SELECT * FROM rp_dag_sdu_log where task_number like ‘%rp%‘;
SELECT * FROM rp_dag_sdu_log where task_number regexp ‘rp‘;

-- MySQL  的正则表达式匹配(自3.23.4版本后)不区分大小写
-- 此时REGEXP 加上关键词 BINARY 可区分大小写,like却不能
SELECT * FROM rp_dag_sdu_log where upper(task_number) like ‘%rp%‘;
SELECT * FROM rp_dag_sdu_log where task_number regexp binary ‘RP‘;

2. MySQL里常用的正则表达式

是否是纯数字
select ‘1234abc‘ NOT REGEXP ‘[^0-9.]‘;
是否含有数字
select ‘1234abc‘ REGEXP ‘[0-9.]‘;

是否以abc开头  
select ‘abc1234‘ regexp ‘^abc‘;
是否以abc结尾
select ‘1234abc‘ REGEXP ‘abc$‘

是否以4位数字开头
select ‘1234abc‘ REGEXP ‘^[0-9]{4}‘ 
是否含有连续4位数字
select ‘1234abc‘ REGEXP ‘[0-9]{4}‘ 
是否含有连续4位字母
select ‘123aBcd12efg‘ REGEXP ‘[a-zA-Z]{4}‘

找出所有包含1000或2000或3000的记录
select *from rp_dag_sdu_log where task_number REGEXP ‘000‘;
select *from rp_dag_sdu_log where task_number REGEXP ‘1000|2000|3000‘;
select *from rp_dag_sdu_log where task_number REGEXP ‘[123]000‘;
select *from rp_dag_sdu_log where task_number REGEXP ‘[1-3]000‘;

谨慎使用(.) 表示匹配任意单个字符(除“\n”外)
(.000)此时只能匹配000前面有字符的数据
select *from rp_dag_sdu_log where task_number REGEXP ‘.000‘;

3. 正则表达式含义表格

 

正则表达式【UltraEdit / MySQL / 数据清洗】

标签:reg   功能   模糊匹配   单个字符   常用   表格   --   字符   where   

原文地址:https://www.cnblogs.com/skyEva/p/12881966.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!