在Chain Builder 中,您可以使用正則表達式 (regex) 運算符來匹配文字串中的字元,例如為以下項目定義模式:
- 映射轉換規則 用於資料預備 連接器 管道
- File Utilities connector'sFind,Find and replace, andSplit file 命令
- 表格轉換 連接器's欄過濾器,過濾行,查找和替換,連接列, 和智慧過濾行 指令
常見運算符號
要定義要匹配的模式,您可以使用這些常用運算符號:
| 運算子 | 說明 | 範例 | 傳回 |
|---|---|---|---|
^ |
匹配字串的開始 | ^abc |
abc, abcdef..., abc123 |
$ |
匹配字串的結尾 | abc$ |
my:abc, 123abc, theabc |
. |
匹配任何字元作為通配符 | a.c |
abc, asc, a123c |
| |
OR 字元 | abc|xyz |
abc 或xyz |
(...) |
捕捉括號中的值 | (a)b(c) |
a 和c |
[...] |
匹配括號內的任何內容 | [abc] |
a,b, 或c |
(A-Z) |
匹配 a 和 z 之間的小寫字符 | [b-z] |
BC,Mind,xyz |
[0-9] |
匹配 0 和 9 之間的任何數字值 | [0-3] |
3201 |
{x} |
精確的匹配次數 | (abc){2} |
abcabc |
{x,} |
最小匹配次數 | (abc){2,} |
ABCABCABC |
* |
在 * 的位置匹配任何內容,或「貪心」匹配 | ab*c |
abc, abbcc, abcdc |
+ |
匹配 + 前一個或多個字符 | a+c |
ac, aac, aaac |
? |
匹配 ? 前的字元 0 或 1 次,或「非貪心」匹配 | ab?c |
ac, abc |
/ |
轉換 / 之後的字元,或建立轉換順序 | a/bc |
a c ,空格匹配/b |
要在模式中使用運算符號的字面符號,而不是 作為 regex:
- 對於圓周括號 (
^)、句號 (.)、開放括號 ([)、美元符號 ($)、開放或關閉括號 (() 或 ())、管道 (|)、星號 (*)、加號 (+)、問號 (?), 開括號 ({), 或反斜線 (\), 接著使用轉義運算符 (\). - 對於末端括號 (
]) 或末端括號 (}) ,使其成為第一個字元,不論是否有開頭^。 - 對於破折號 (
-),使其成為第一個或最後一個字元,或範圍的第二個端點。
提示: 括號內的所有字元均按字面意義理解,而非 作為 regex 運算符號。例如,[*\+?{}.] 匹配括号内的任何字面字符。
匹配字串的開始或結束 (^ 和$)
要匹配字串開始或結尾的模式,請分別使用運算符號 ^ 和 $ 。例如:
| 範例 | 匹配 |
|---|---|
^The |
任何以開頭的字串 |
的絕望$ |
任何以of despair 結尾的字串 |
^abc$ |
以abc開始和結束的字串 - 完全匹配 |
提示: 如果沒有使用^ 或$ ,則該模式會匹配包含 所指定字元的任何字串。例如,notice-with no^ or$-returns any string that containsnotice.
匹配字符 (*,+, 和?)
若要根據特定字元匹配模式,請在字元後面加上運算符*,+, 或? 。這些運算符號分別表示該符號在匹配時應出現的次數 - 零或更多、一或更多、一或零。例如:
| 範例 | 匹配 |
|---|---|
ab* |
一個字串包含a, 接著一個或多個bs-ac,abc, 或abbc |
ab+ |
一個字串包含a, 接著一個或多個bs-abc 或abbc, 但不是 ac |
ab? |
一個字串包含a, 接著是零或一個bs-ac 或abc, 但不是 abc |
a?b+$ |
以一個或多個bs 結尾的字串,不論前面是否有a ;例如ab,abb,b, 或bb, 但不是 aab 或aabb |
匹配字符的頻率 ({...} 或(...))
若要根據單一字元出現的頻率來匹配模式,請在其後面加上以括號包圍的實例數目或範圍 ({...})。例如:
| 範例 | 匹配 |
|---|---|
ab{2} |
一個字串包含a, 接著至少 2bs-abb |
ab{2,} |
包含a, 接著至少 2bs-abb,abbbb, 等等的字串。 |
ab{3,5} |
一個字串包含a, 接著三到五個bs-abbb,abbbb, 或abbbbb |
提示: 請務必指定範圍內的第一個數字-{0,2},而不是 {,2} 。不使用範圍{0,},{1,}, 或{0,1}, 您可以使用運算符*,+, 或?, 分別代替。
要根據序列 字符出現的頻率來匹配模式,請用括號 ((...)) 包圍它。例如,a(bc){1,5} 與包含a 的字串匹配,接著是一到五個bc 的實例。
匹配多個模式之一 (|)
要匹配多個模式之一 - 例如this ORthat- 請使用 OR 運算符| 。例如:
| 範例 | 匹配 |
|---|---|
hi|hello |
包含hi 或hello 的字串 |
(b|cd)ef |
包含bef 或cdef 的字串 |
(a|b)*c |
具有交替的as 和bs 序列,以c 結尾的字串 |
匹配任何字符 (.)
要表示要匹配的模式中的任何字符,請使用通配符運算符.. 例如:
| 範例 | 匹配 |
|---|---|
a.[0-9] |
包含a 的字串,後跟任何字元及數字 |
^.{3}$ |
任何恰好包含三個字元的字串 |
匹配字元位置 ([...])
要根據字元的位置匹配模式,請使用括號 ([...])。例如:
| 範例 | 匹配 |
|---|---|
[ab] |
包含a 或b 的字串;等同於a|b |
廣告 |
包含小寫的字串 |
^[a-zA-Z] |
以任何字母開頭的字串,不論大小寫 |
[0-9]% |
包含任何單一數字後跟百分比符號的字串 |
,[a-zA-Z0-9]$ |
以逗號結尾,後跟任何字元的字串 |
注意: 括號內的所有字元均按字面意義理解,而非 作為 regex 運算符號。例如,[*\+?{}.] 會匹配括號內的任何字面符號。
匹配不需要的字符 ([^...])
若要匹配不包含 字元的模式,請以 ^ 運算符號開始序列,並用括弧包圍。例如,%[^a-zA-z]% 可匹配包含兩個百分號之間任何非字母字符的字串。