網站首頁 編程語言 正文
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
相關推薦
- 2023-05-22 解決Python報錯:ValueError:operands?could?not?be?broadc
- 2023-03-04 c++元編程模板函數重載匹配規則示例詳解_C 語言
- 2022-09-15 C++如何計算二進制數中1的個數_C 語言
- 2022-07-23 Go語言學習筆記之文件讀寫操作詳解_Golang
- 2023-01-31 React受控組件與非受控組件深入講解_React
- 2022-11-27 C語言移除元素的三種思路講解_C 語言
- 2022-03-25 .NET提取?Thread?中返回值詳情_ASP.NET
- 2022-04-21 C#使用Chart繪制曲線_C#教程
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支