日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

教你用正則表達式提取數字和小數點_正則表達式

作者:燦彬垂死掙扎ing ? 更新時間: 2022-11-18 編程語言

1、初識

1.1、純數字提取

-- "提取123abc提取":提取當前字符當中的123
 
-- 1.Hive:
select regexp_replace('提取123abc提取','[^0-9]+','')    "123"
select regexp_replace('提取123abc提取','\D','')      "提取123abc提取"
 
-- 2.PG: 'g':global,全局替換
select regexp_replace('提取123abc提取','[^0-9]+','','g' )   "123"
select regexp_replace('提取123abc提取','\D','','g' )        "123"

1.2、帶有小數點數字提取

-- "提取123.11abc提取":提取當前字符當中的123.11
 
-- 1.Hive:小數或者整數數據提取
select regexp_extract('提取123.11abc提取','[0-9]+([.]{1}[0-9]+){0,1}',0)    "123.11"
select regexp_extract('提取123abc提取','[0-9]+([.]{1}[0-9]+){0,1}',0)   "123"
 
-- 2.PG:
select regexp_replace('提取123.11abc提取','[^\d.\d]','','g') "123.11"

2、語法

字符 說明 等效于
\ 將下一字符標記為特殊字符、文本、反向引用或八進制轉義符。
e.g:“n"匹配字符"n”。"\n"匹配換行符。序列"\\“匹配”","\(“匹配”("
?
^ 匹配輸入字符串開始的位置 ?
$ 匹配輸入字符串結束的位置 ?
* 零次或多次匹配前面的字符或子表達式 {0,}
+ 一次或多次匹配前面的字符或子表達式 {1,}
? 零次或一次匹配前面的字符或子表達式 {0,1}
{n} n是非負整數。正好匹配n次。
e.g:"o{2}"與"job"中的"o"不匹配,但與"food"中的兩個"o"匹配
?
{n,} n是非負整數。至少匹配n次。
e.g:"o{2,}“不匹配"job"中的"o”,而匹配"fooooood"中的所有o
"o{1,}“等效于"o+”
"o{0,}“等效于"o*”
{n,m} m和n是非負整數,其中n<=m。匹配至少n次,至多m次。
e.g:"o{1,3}"匹配"fooooooood"中的頭三個o
"o{0,1}“等效于"o?”
? 當此字符緊隨任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后,
匹配模式是“非貪心匹配”。“非貪心匹配”:匹配搜索到的盡可能短的字符串,
而默認的“貪心匹配”則是匹配搜索到盡可能長的字符串。
e.g:"oooo"中,"o+?“只能夠匹配出單個"o”;而"o+“匹配出所有的"o”
?
. 匹配除"\r\n"之外的任何單個字符 ?
[xyz] 字符集。匹配包含的任一字符。
e.g:"[abc]“匹配"plain"中的"a”
?
[^xyz] 反向字符集。匹配未包含的任何字符。
e.g:"[^abc]“匹配"plain"中"p”,“l”,“i”,“n”
?
[a-z] 字符范圍。匹配指定范圍內的任何字符。
e.g:"[a-z]"匹配"a"到"z"范圍內的任何小寫字母
?
[^a-z] 反向范圍字符。匹配不在指定范圍內的任何字符。
e.g:"[^a-z]"匹配任何不在"a"到"z"范圍內的任何字符
?
\d 數字字符匹配。 [0-9]
\D 非數字字符匹配。 [^0-9]
\s 匹配任何空白字符,包括空格、制表符、換頁符等 ?
\S 匹配任何非空白字符 ?
\w 匹配任何類字符,包括下劃線 [A-Za-z0-9_]
\W 與任何非單詞字符匹配 [^A-Za-z0-9_]
? ? ?

3、實例代碼

-- PG:regexp_match:匹配函數
select regexp_match('會議事業部69.57%/','[\d.\d]{1,}')	"{69.57}"
select regexp_match('會議事業部69%57%/','[\d%\d]{1,}')	"{69%57%}"
-- 子表達式中:[\d.\d]:這時候:'.' 不再是匹配除"\r\n"之外的任何單個字符
select regexp_match('會議事業部69%57%/','[\d.\d]{1,}')	"{69}"

4、參考Demo

-- PostgreSQL正則表達使用
https://blog.csdn.net/qq_22994783/article/details/82699559
-- Hive常用正則表達式
https://cloud.tencent.com/developer/article/1538552

總結

原文鏈接:https://blog.csdn.net/qq_38294275/article/details/120134307

欄目分類
最近更新