如要建立規則運算式,您必須使用特定語法,亦即特殊字元和建構規則。例如,下列是一個簡單的規則運算式,可比對任何 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 | 比對任何空白字元。例如,您可以使用這個字元,在詞組中指定字詞之間的空格: stock\stips 比對 stock tips 詞組 等同於 [:space:] |
\S | 比對任何非空白字元。 等同於 [^[:space:]] |
\d | 比對 0 到 9 之間的任何數字。 等同於 [:digit:] |
\D | 比對非 0 到 9 之間數字的任何字元。 等同於 [^[:digit:]] |
群組 | |
(...) | 將運算式進行分組;透過分組將量詞套用至群組,或在群組前/後比對字元類別。 |
量詞 | |
{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 成為選擇性字元)。 |