如要建立規則運算式,您必須使用特定語法,亦即特殊字元和建構規則。舉例來說,以下是簡單的規則運算式,可比對任何 10 位數的電話號碼,模式為 nnn-nnn-nnnn:
\d{3}-\d{3}-\d{4}
下表說明規則運算式中最常見的特殊字元。這些字元可分為下列類型:
| 角色 | 說明 |
|---|---|
| 錨點 | |
| ^ | (插入符號) 規則運算式所搜尋的比對必須發生在行或字串的開頭。例如,如果一個內容規則含有位置主旨行和下列規則運算式: ^abc 則會擷取所有主旨行開頭為字母 abc 的電子郵件 |
| $ | (美元符號) 規則運算式所搜尋的比對必須發生在行或字串的結尾。例如,如果一個內容規則含有位置主旨行和下列規則運算式: xyz$ 則會擷取所有主旨行結尾為字母 xyz 的電子郵件 |
| 中繼字元 | |
| 。 | (點) 比對任何單一字元,但不包括換行符號。 |
| | | (直線符號) 表示交互選擇,也就是「或」的意思。例如: 「貓|狗」即為比對貓字或狗字 |
| \ | 表示下一個字元是常值,而非特殊字元。例如: \. 是比對常值句號字元,而非任何字元 (點字元) |
| 字元類別 | |
| [...] | 比對字元集中的任何字元。使用英文破折號分隔字元集的第一個和最後一個字元。例如: [123] 比對數字 1、2 或 3 [a-f] 比對 a 到 f 之間的所有字母 注意:內容規範政策中的規則運算式須區分大小寫。 |
| [^...] | 比對字元集範圍以外的任何字元。例如: [^a-f]即為比對 a 到 f 字母範圍以外的所有字元 注意:內容規範政策中的規則運算式須區分大小寫。 |
| [:alnum:] | 比對英數字元 (字母或數字): a-z、A-Z 或 0-9 注意:當您在規則運算式中使用這個字元類別時,必須使用另一組方括號將其括住,例如:[[:alnum:]]。 |
| [:alpha:] | 比對英文字母字元 (字母): a-z 或 A-Z 注意:當您在規則運算式中使用這個字元類別時,必須使用另一組方括號將其括住,例如:[[:alpha:]]。 |
| [:digit:] | 比對數字: 0-9 注意:當您在規則運算式中使用這個字元類別時,必須使用另一組方括號將其括住,例如:[[:digit:]]。 |
| [:graph:] | 只比對顯示的字元,也就是空格、控制項等隱藏字元以外的任何字元。 注意:當您在規則運算式中使用這個字元類別時,必須使用另一組方括號將其括住,例如:[[:graph:]]。 |
| [:punct:] | 比對標點符號字元和符號: ! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | } 注意:當您在規則運算式中使用這個字元類別時,必須使用另一組方括號將其括住,例如:[[:punct:]]。 |
| [:print:] | 比對顯示的字元和空格。 注意:當您在規則運算式中使用這個字元類別時,必須使用另一組方括號將其括住,例如:[[:print:]]。 |
| [:space:] | 比對所有空白字元,包括空格、tab 和斷行字元。 注意:當您在規則運算式中使用這個字元類別時,必須使用另一組方括號將其括住,例如:[[:space:]]。 |
| [:word:] | 比對任何文字字元,亦即任何字母、數字或底線: a-z、A-Z、0-9 或 _ 注意:當您在規則運算式中使用這個字元類別時,必須使用另一組方括號將其括住,例如:[[:word:]]。 |
| 速記字元類別 | |
| \w | 比對任何文字字元,亦即任何字母、數字或底線: a-z、A-Z、0-9 或 _ 等同於 [:word:] |
| \W | 比對任何非文字字元,也就是字母、數字或底線以外的任何字元。 等同於 [^[:word:]] |
| \s | 等同任何空白字元,例如,您可以使用這個字元,在詞組中指定字詞之間的空格: stockstips 比對 stock tips 詞組 等同於 [:space:] |
| \S | 比對任何非空白字元。 等同於 [^[:space:]] |
| \d | 比對 0 到 9 之間的任何數字。 等同於 [:digit:] |
| \D | 比對非 0 到 9 之間數字的任何字元。 等同於 [^[:digit:]] |
| Group | |
| (...) | 將運算式部分分組。透過分組將量詞套用至群組,或在群組前/後比對字元類別。 |
| 量詞 | |
| {n} | 比對前方運算式剛好 n 次。例如: [a-c]{2} 會比對 a 到 c 之間的任何字母,前提是必須為 2 個連續的字母。因此,運算式會比對 ab 和 bc,但不會比對 abc 或 aabbc。 |
| {n,m} | 比對前方運算式至少 n 次,最多 m 次。例如: [a-c]{2,4} 會比對 a 到 c 之間的任何字母,前提是這些字母必須連續出現至少 2 次,最多 4 次。因此,本運算式會比對 ab 和 abc,但不會比對 aabbc。 |
| ? | 表示前接字元或運算式可比對 0 或 1 次。(等同於範圍 {0,1})。例如,如果有一個規則運算式如下: colou?r 則會比對 colour 或 color (因為 ? 的存在,使得前述字元 u 成為選擇性字元)。 |