546
阿裏雲
正則表達式規範__附錄_SQL_大數據計算服務-阿裏雲
ODPS SQL中的正則表達式采用的是PCRE的規範,匹配時是按字符進行,支持的元字符如下:
元字符 說明
^ 行首
$ 行尾
. 任意字符
* 匹配零次或多次
+ 匹配1次或多次
? 匹配零次或1次
? 匹配修飾符,當該字符緊跟在任何一個其他限製符 (* ,+, ?, {n}, {n,}, {n,m})後麵時,匹配模式是非貪 婪的。
非貪婪模式盡可能少的匹配所搜索的字符串, 而默認的貪婪模式則盡可能多的匹配所搜索的字符串。
A|B A或B
(abc)* 匹配abc序列零次或多次
{n}或{m,n} 匹配的次數
[ab] 匹配括號中的任一字符,例中模式匹配a或b
[a-d] 匹配a,b,c,d任一字符
[^ab] ^表示非,匹配任一非a非 b的字符
[::] 見下表POSIX字符組
轉義符
n n為數字1-9,後向引用
d 數字
D 非數字
POSIX字符組
POSIX字符組 說明 範圍
[[:alnum:]] 字母字符和數字字符 [a-zA-Z0-9]
[[:alpha:]] 字母 [a-zA-Z]
[[:ascii:]] ASCII字符 [x00-x7F]
[[:blank:]] 空格字符和製表符 [ t]
[[:cntrl:]] 控製字符 [x00-x1Fx7F]
[[:digit:]] 數字字符 [0-9]
[[:graph:]] 空白字符之外的字符 [x21-x7E]
[[:lower:]] 小寫字母字符 [a-z]
[[:print:]] [:graph:]和空白字符 [x20-x7E]
[[:punct:]] 標點符號 [][!”#$%&’()*+,./:;<=>? @^_`{|}~-]
[[:space:]] 空白字符 [ trnvf]
[[:upper:]] 大寫字母字符 [A-Z]
[[:xdigit:]] 十六進製字符 [A-Fa-f0-9]
由於係統采用反斜線””作為轉義符,因此正則表達式的模式中出現的””都要進行二次轉義。如正則表達式要匹配字符串”a+b”, 其中”+”是正則中的一個特殊字符,因此要用轉義的方式表達,在正則引擎中的表達方式是”a+b”,由於係統還要解釋一層轉義, 因此能夠匹配該字符串的表達式是”a\+b”。例如,假設存在表test_dual,
select 'a+b' rlike 'a\+b' from test_dual;
+------+
| _c1 |
+------+
| true |
+------+
極端的情況,如果在要匹配字符””, 由於在正則引擎中””是一個特殊字符,因此要表示為””,而係統還要對表達式進行一次轉義,因此寫成”\”
select 'a\b', 'a\b' rlike 'a\\b' from test_dual;
+-----+------+
| _c0 | _c1 |
+-----+------+
| ab | true |
+-----+------+
備注:
- 在ODPS SQL中寫”ab”, 而在輸出結果中顯示’ab’,同樣是因為ODPS會對表達式進行轉義。
如果字符串中有製表符TAB, 係統在讀入’t’這兩個字符的時候,即已經將其存為一個字符,因此在正則的模式中也是一個普通的字符。
select 'atb', 'atb' rlike 'atb' from test_dual;
+---------+------+
| _c0 | _c1 |
+---------+------+
| a b | true |
+---------+------+
最後更新:2016-05-06 10:43:07
上一篇:
LIKE字符匹配__附錄_SQL_大數據計算服務-阿裏雲
下一篇:
保留字__附錄_SQL_大數據計算服務-阿裏雲
態勢感知9月功能更新__產品升級更新_態勢感知-阿裏雲
獲取域名日誌__JAVA SDK_SDK 手冊_CDN-阿裏雲
大數據計算服務MaxCompute(原名ODPS)服務協議__相關協議_平台介紹_數加平台介紹-阿裏雲
防火牆狀態及解決方案__產品常見問題_服務器安全(安騎士)-阿裏雲
C SDK開發包__曆史版本SDK下載_SDK 參考_對象存儲 OSS-阿裏雲
申請物理專線接入__高速通道相關接口_API 參考_雲服務器 ECS-阿裏雲
消費消息示例代碼__Java SDK_SDK使用手冊_消息服務-阿裏雲
CreateRules__轉發規則相關API_API 參考_負載均衡-阿裏雲
圖片鑒黃異步檢測結果查詢接口__智能圖片鑒黃API_內容檢測API文檔_阿裏綠網-阿裏雲
Tunnel命令操作__常用命令_基本介紹_大數據計算服務-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲