Postgresql:REGEXP开头的正则函数用法
创始人
2024-11-30 13:33:45

以字符串‘你好-Hello,123_世界World,456’来介绍下

REGEXP_MATCHES()、REGEXP_REPLACE()、REGEXP_SPLIT_TO_ARRAY()、REGEXP_SPLIT_TO_TABLE() 四个函数用法


REGEXP_MATCHES()

REGEXP_MATCHES()用于在文本字符串中执行正则表达式匹配,并返回匹配的结果作为数组。

--从字符串中返回的结果只有小写英文 SELECT REGEXP_MATCHES('你好-Hello,123_世界-World,456', '[a-z]+', 'g'); 

--从字符串中返回的结果只有大写英文 SELECT REGEXP_MATCHES('你好-Hello,123_世界-World,456', '[A-Z]+', 'g'); 

--从字符串中返回的结果只有英文 SELECT REGEXP_MATCHES('你好-Hello,123_世界-World,456', '[a-zA-Z]+', 'g');

REGEXP_REPLACE()

REGEXP_REPLACE()用于在文本字符串中执行正则表达式替换,并返回替换后的字符串。

--将字符串中数字替换为'*' SELECT REGEXP_REPLACE('你好-Hello,123_世界World,456', '[0-9]', '*', 'g');

--将字符串中英文替换为'*' SELECT REGEXP_REPLACE('你好-Hello,123_世界World,456', '[a-zA-Z]', '*', 'g');

 

--将字符串中汉字替换为'*' SELECT REGEXP_REPLACE('你好-Hello,123_世界World,456', '[\u4e00-\u9fa5]', '*', 'g');

 

最近工作中遇到了处理字符串的问题,正好做下补充:

譬如某个字段中存在垃圾数据,数据内容应该是'abc+123'的格式,但有的数据只有一个'+',如果只用replace()替换,就可能污染了正常数据,那么就可以用REGEXP_REPLACE()

--譬如脏数据是'+',需要处理成空字符串 SELECT regexp_replace('+', '^\+$', '');

 

REGEXP_SPLIT_TO_ARRAY()

REGEXP_SPLIT_TO_ARRAY()用于将文本字符串按照正则表达式进行分割,并返回结果作为数组。

--以字符串中的标点符号来分割 SELECT REGEXP_SPLIT_TO_ARRAY('你好-Hello,123_世界-World,456', '[-,_]+');

REGEXP_SPLIT_TO_TABLE() 

REGEXP_SPLIT_TO_TABLE()用于将文本字符串按照正则表达式进行分割,并返回结果作为表格。

--以字符串中的标点符号来分割 SELECT REGEXP_SPLIT_TO_TABLE('你好-Hello,123_世界-World,456', '[-,_]+');

最后可以参考这篇文章学习正则表达式的语法

正则表达式的语法汇总

相关内容

热门资讯

四部门印发行动方案,促进人工智... 近日,国家能源局会同国家发展改革委、工业和信息化部、国家数据局印发《关于促进人工智能与能源双向赋能的...
瞄准8时13分!一起看发射场准... 我国将于5月11日8时13分发射天舟十号货运飞船。目前,长征七号遥十一运载火箭已完成推进剂加注。 距...
天舟十号货运飞船点火发射 今天上午,搭载天舟十号货运飞船的长征七号遥十一运载火箭,在我国文昌航天发射场点火发射。
原创 微... 前段时间 iOS 微信发布了 8.0.73 正式版,安卓微信发布了 8.0.72 测试版,这次的更新...
任正非罕见出镜:华为芯片基础技... 感谢IT之家网友 的线索投递! 5 月 10 日消息,在 5 月 8 日播出的《新闻联播》节目中,...