正则表达式UltraEdit / MySQL / 数据清洗
Posted 见贤思小齐,知足常乐呵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式UltraEdit / MySQL / 数据清洗相关的知识,希望对你有一定的参考价值。
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‘; 谨慎使用(.) 表示匹配任意单个字符(除“ ”外) (.000)此时只能匹配000前面有字符的数据 select *from rp_dag_sdu_log where task_number REGEXP ‘.000‘;
3. 正则表达式含义表格
以上是关于正则表达式UltraEdit / MySQL / 数据清洗的主要内容,如果未能解决你的问题,请参考以下文章