1. 抽取資料
1.1 用法一
1)概述
文法 | REGEXP(str, pattern) | 字串 str 是否與正則表式 pattern 相匹配 |
---|---|---|
參數1 | str | 字串 |
參數2 | pattern | 正則表式 |
2)注意事項
若要使用\字元,需要重新整理增一個反斜槓。所以當公式為regexp(字串,"\d")時會提示不合法,需寫成regexp(字串,"\\d"),如下圖所示:
兩個正文型別參數
3)範例
公式 | 結果 | 備註 |
---|---|---|
REGEXP("aaaaac","a*c") | true | |
REGEXP("abc","a*c") | false |
本文以 \d 和 \w 為例,在編輯資料中使用該函式,其中 \d 表示匹配數字,\w 表示匹配字母或數字或底線或漢字,如下圖所示:
更多正則表式範例詳情參見:正則表式範例
1.2 用法二
1)概述
文法 | REGEXP(str, pattern, intNumber) | 字串 str 是否與具有給定模式 intNumber 的正則表式 pattern 相匹配 |
---|---|---|
參數1 | str | 字串 |
參數2 | pattern | 正則表式 |
參數3 | intNumber | 給定模式 |
2)注意事項
intNumber 的模式如下所示 :
透過設定intNumber為兩種模式之和可以同時開啟多種模式,如intNumber=1 2=3則表示同時開啟 Unix行模式及不區分大小寫匹配模式
intNumber 模式 | 概念 |
intNumber=1 | UNIX_LINES 啟用Unix行模式,在此模式下,"."、"^"、"$"的行為中僅識別" "行結束符 |
intNumber=2 | CASE_INSENSITIVE 啟用不區分大小寫匹配。預設情況下,不區分大小寫匹配假定僅匹配US-ASCII字元集中的字元。可以透過指定UNICODE_CASE模式連同此模式來啟用Unicode感知的、不區分大小寫匹配。 |
intNumber=4 | COMMENTS 啟用允許使用空格和註釋模式。此模式將忽略空格和在結束行之前以#開頭的嵌入式註釋。 |
intNumber=8 | MULTILINE 啟用多行模式 |
intNumber=16 | LITERAL 啟用正文分析的模式。啟用此模式後,輸入字串就會作為字面值字元序列來對待。輸入序列中的元字元或轉義序列不具有任何特殊意義。CASE_INSENSITIVE 模式和 UNICODE_CASE 模式在與此模式一起使用時將對匹配產生影響。其他模式下無影響。 |
intNumber=32 | DOTALL 啟用dotall模式,表式"."可以匹配任何字元,包括行結束符。預設情況下,此表式不匹配行結束符。 |
intNumber=64 | UNICODE_CASE 啟用Unicode感知的大小寫摺疊。指定此模式並同時制定CASE_INSENSITIVE模式時,不區分大小寫匹配將以符合Unicode標準的方式完成。 |
intNumber=128 | CANON_EQ 啟用規範等效模式,啟用此模式後,當且僅當其完整規範分解匹配時,兩個字元才可視為匹配。 |
支援前兩個參數為正文,第三個參數為數值型別
3)範例
公式 | 結果 | 公式說明 |
---|---|---|
REGEXP("Aaaaabbbbc","a*b*c", 3) | true | 表示同時開啟 Unix行模式及不區分大小寫匹配模式。因此傳回 true |
REGEXP("Aaaaabbbbc","a*b*c", 1) | false | 表示同時開啟 Unix行模式,由於區分大小寫,因此傳回 false |
REGEXP("Abc","abc", 2) | true | 表示開啟不區分大小寫模式,因此傳回 true |
REGEXP("Abc","abc", 2),如下圖所示:
2. 直連版本
1)概述
文法 | REGEXP(str,pattern) | 字串str是否與正則表式pattern相匹配 |
---|---|---|
參數1 | str | 字串 |
參數2 | pattern | 正則表式 |
2)注意事項
第一個參數為正文型別,第二個參數為正文型別。
SAP Sybase 資料庫和 Microsoft SQL Server 資料庫不支援該函式。
3)範例
公式 | 結果 | 備註 |
---|---|---|
REGEXP("aaaaac","a*c") | true | |
REGEXP("abc","a c") | false |