Postgresql?REGEXP開頭的正則函數(shù)用法圖文詳解
以字符串‘你好-Hello,123_世界World,456’來介紹下
REGEXP_MATCHES()、REGEXP_REPLACE()、REGEXP_SPLIT_TO_ARRAY()、REGEXP_SPLIT_TO_TABLE() 四個函數(shù)用法
REGEXP_MATCHES()
REGEXP_MATCHES()用于在文本字符串中執(zhí)行正則表達式匹配,并返回匹配的結(jié)果作為數(shù)組。
--從字符串中返回的結(jié)果只有小寫英文 SELECT REGEXP_MATCHES('你好-Hello,123_世界-World,456', '[a-z]+', 'g');
--從字符串中返回的結(jié)果只有大寫英文 SELECT REGEXP_MATCHES('你好-Hello,123_世界-World,456', '[A-Z]+', 'g');
--從字符串中返回的結(jié)果只有英文 SELECT REGEXP_MATCHES('你好-Hello,123_世界-World,456', '[a-zA-Z]+', 'g');
REGEXP_REPLACE()
REGEXP_REPLACE()用于在文本字符串中執(zhí)行正則表達式替換,并返回替換后的字符串。
--將字符串中數(shù)字替換為'*' 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');
最近工作中遇到了處理字符串的問題,正好做下補充:
譬如某個字段中存在垃圾數(shù)據(jù),數(shù)據(jù)內(nèi)容應(yīng)該是'abc+123'的格式,但有的數(shù)據(jù)只有一個'+',如果只用replace()替換,就可能污染了正常數(shù)據(jù),那么就可以用REGEXP_REPLACE()
--譬如臟數(shù)據(jù)是'+',需要處理成空字符串 SELECT regexp_replace('+', '^\+$', '');
REGEXP_SPLIT_TO_ARRAY()
REGEXP_SPLIT_TO_ARRAY()用于將文本字符串按照正則表達式進行分割,并返回結(jié)果作為數(shù)組。
--以字符串中的標點符號來分割 SELECT REGEXP_SPLIT_TO_ARRAY('你好-Hello,123_世界-World,456', '[-,_]+');
REGEXP_SPLIT_TO_TABLE()
REGEXP_SPLIT_TO_TABLE()用于將文本字符串按照正則表達式進行分割,并返回結(jié)果作為表格。
--以字符串中的標點符號來分割 SELECT REGEXP_SPLIT_TO_TABLE('你好-Hello,123_世界-World,456', '[-,_]+');
最后可以參考這篇文章學(xué)習(xí)正則表達式的語法
總結(jié)
到此這篇關(guān)于Postgresql REGEXP開頭的正則函數(shù)用法的文章就介紹到這了,更多相關(guān)Postgresql REGEXP正則函數(shù)用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
postgresql查詢今天、昨天、本周、本月、上月、今年、去年的時間以及計算時間之差
PostgreSQL提供了許多返回當前日期和時間的函數(shù),下面這篇文章主要給大家介紹了關(guān)于postgresql查詢今天、昨天、本周、本月、上月、今年、去年的時間以及計算時間之差的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-08-08

在Ubuntu中安裝Postgresql數(shù)據(jù)庫的步驟詳解

Postgresql 數(shù)據(jù)庫權(quán)限功能的使用總結(jié)

如何獲取PostgreSQL數(shù)據(jù)庫中的JSON值

15個postgresql數(shù)據(jù)庫實用命令分享