最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL正則表達式regexp_replace函數(shù)的用法實例

 更新時間:2022年09月29日 09:44:16   作者:msw、  
regexp_replace的使用非常靈活,且容易忘記,故做此筆記,下面這篇文章主要給大家介紹了關(guān)于MySQL正則表達式regexp_replace函數(shù)的用法實例,需要的朋友可以參考下

注:此函數(shù)為 MySQL8.0 版本新增,低于8.0版本沒有此函數(shù)。

regexp_replace(expr, pat, repl[, pos[, occurrence[, match_type]]])

用法

將字符串expr與pat指定的正則表達式匹配的匹配項,替換為字符串repl,并返回結(jié)果字符串。如果expr、pat或repl為NULL,則返回值為NULL。

參數(shù)

  • expr:要替換的原始字符串,或者數(shù)據(jù)庫表指定的列。 
  • pat:要匹配的正則表達式,pat為空串時拋異常,Illegal argument to a regular expression。 
  • repl:將匹配的pat替換成的字符串。 
  • pos:expr開始搜索的位置。如果省略,則默認值為 1。
  • occurrence:要替換哪個匹配項。如果省略,則默認值為 0(表示“替換所有匹配項”)。
  • match_type:指定如何執(zhí)行匹配的任何或所有以下字符。(i:不區(qū)分大小寫的匹配 默認。c:區(qū)分大小寫的匹配。m: 多行模式。n:. 字符匹配行終止符。默認值是 .匹配在行尾停止。u: 僅 Unix 的行尾。只有換行符會被 、 和 match 運算符識別為以行結(jié)尾.的^行 $。)

用法

示例:基本用法,替換全部數(shù)字變成#。

select regexp_replace('1abc2', '[0-9]', '#');

輸出:

 示例:pos用法,從字符串第二位開始搜索,替換全部數(shù)字變成#。

select regexp_replace('12abc', '[0-9]', '#', 2);

輸出:

格式化手機號,將+86 13811112222轉(zhuǎn)換為(+86) 138-1111-2222,’+‘在正則表達式中有定義,需要轉(zhuǎn)義。\\1表示引用的第一個組

SELECT regexp_replace('+86 13811112222','(\\+[0-9]{2})( )([0-9]{3})([0-9]{4})([0-9]{4})','(\\1)\\3-\\4-\\5',0);

結(jié)果:(+86)138-1111-2222

SELECT regexp_replace("123.456.7890","([[:digit:]]{3})\\.([[:digit:]]{3})\\.([[:digit:]]{4})","(\\1)\\2-\\3",0) ;
SELECT regexp_replace("123.456.7890","([0-9]{3})\\.([0-9]{3})\\.([0-9]{4})","(\\1)\\2-\\3",0) ;

結(jié)果:(123)456-7890

將字符用空格分隔開,0表示替換掉所有的匹配子串。

SELECT regexp_replace('abcdefg123456ABC','(.)','\\1 ',0) AS new_str FROM dual;

結(jié)果:a b c d e f g 1 2 3 4 5 6 A B C

SELECT regexp_replace('abcdefg123456ABC','(.)','\\1 ',2) AS new_str FROM dual;

結(jié)果:ab cdefg123456ABC

SELECT regexp_replace("abcd","(.*)(.)$","\\1",0) ;

結(jié)果:abc

SELECT regexp_replace("abcd","(.*)(.)$","\\2",0) ;

結(jié)果:d

SELECT regexp_replace("abcd","(.*)(.)$","\\1-\\2",0) ;

結(jié)果:abc-d

其他案例:

SELECT regexp_replace("abcd","(.)","\\2",1) 結(jié)果為"abcd",因為pattern中只定義了一個組,引用的第二個組不存在。
SELECT regexp_replace("abcd","(.*)(.)$","\\2",0) 結(jié)果為"d"
SELECT regexp_replace("abcd","(.*)(.)$","\\1",0) 結(jié)果為"abc"
SELECT regexp_replace("abcd","(.*)(.)$","\\1-\\2",0) 結(jié)果為"abc-d"
SELECT regexp_replace("abcd","a","\\1",0),結(jié)果為” \1bcd”,因為在pattern中沒有組的定義,所以\1直接輸出為字符。

總結(jié)

到此這篇關(guān)于MySQL正則表達式regexp_replace函數(shù)用法的文章就介紹到這了,更多相關(guān)MySQL正則表達式regexp_replace函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

昆明市| 枞阳县| 南宫市| 石屏县| 天峨县| 柳州市| 微山县| 容城县| 武鸣县| 大宁县| 石河子市| 自治县| 故城县| 老河口市| 正定县| 崇仁县| 永善县| 普兰店市| 九江县| 宕昌县| 安丘市| 开平市| 泽库县| 正镶白旗| 平南县| 延津县| 浦北县| 忻城县| 七台河市| 巨鹿县| 房山区| 岑溪市| 阜阳市| 江山市| 即墨市| 砀山县| 汶川县| 佛山市| 双江| 轮台县| 冕宁县|