下列範例說明如何使用與建構簡單規則運算式。每個範例皆包含要比對的文字類型、一或多個比對該文字的規則運算式,以及說明使用特殊字元和格式的注意事項。
重要事項:我們僅支援 RE2 語法,這種語法與 PCRE 稍有不同。規則運算式依預設必須區分大小寫。
注意:雖然以下例子可做為複雜運算式的入門範例,但如要比對單一字詞,建議您使用「內容規範」或「不當內容」設定。
僅比對完全相符的詞組 |
使用範例 |
比對 stock tips 這個詞組。 |
規則運算式範例 |
範例 1:(\W|^)stock\stips(\W|$)
範例 2:(\W|^)stock\s{0,3}tips(\W|$)
範例 3:(\W|^)stock\s{0,3}tip(s){0,1}(\W|$) |
注意事項 |
- \W 會比對字母、數字或底線以外的任何字元,並且讓規則運算式無法比對詞組前後的字元。
- 在範例 2 中,\s 會比對空格字元,{0,3} 表示在 stock 和 tip 之間會有 0 到 3 個不等的空格。
- ^ 會比對新行的開頭,允許規則運算式比對新行開頭的詞組,該詞組前方沒有其他字元。
- $ 會比對行的結尾,允許規則運算式比對行結尾的詞組,該詞組後方沒有其他字元。
- 在範例 3 中,(s) 會比對字母 s,而 {0,1} 表示該字母會在 tip 後面出現 0 次或 1 次,因此規則運算式會比對 stock tip 和 stock tips。您也可以使用 ? 字元取代 {0,1}
|
比對清單中的字詞或詞組 |
使用範例 |
比對下列清單中的字詞或詞組:
- baloney
- darn
- drat
- fooey
- gosh darnit
- heck
|
規則運算式範例 |
(?i)(\W|^)(baloney|darn|drat|fooey|gosh\sdarnit|heck)(\W|$) |
注意事項 |
|
比對含有其他拼寫方式或特殊字元的字詞 |
使用範例
|
比對 fast cash 這個字詞以及一些垃圾訊息散布者常用的混碼 (obfuscation),例如:
- f@st c@sh
- f@$t c@$h
- fa$t ca$h
|
規則運算式範例 |
f[a4@][s5\$][t7] +c[a4@][s5\$]h
|
注意事項 |
- 由於未加入 \W,因此其他字元會顯示在 fast cash 變體字的前方或後方,規則運算式仍會在這類文字中比對 fast cash,例如:
Fast cash!! or ***f@st ca$h***
- [a4@] 會比對字詞的第二個字元位置中的 a、4 或 @ 字元,這些字元代表垃圾訊息散布者用來規避簡要文字比對的常見字母。
|
比對特定網域的任何電子郵件地址 |
使用範例 |
比對 yahoo.com、hotmail.com 和 gmail.com 網域的任何電子郵件地址。 |
規則運算式範例 |
(\W|^)[\w.\-]{0,25}@(yahoo|hotmail|gmail)\.com(\W|$) |
注意事項 |
- \W 會比對字母、數字或底線以外的任何字元,並且讓規則運算式無法比對電子郵件地址前後的字元。
- ^ 會比對新行的開頭,允許規則運算式比對新行開頭的電子郵件地址,該電子郵件地址前方沒有其他字元。
- $ 會比對行的結尾,讓規則運算式比對行結尾的電子郵件地址,該電子郵件地址後方沒有任何字元。
- [\w.\-] 會比對任何文字字元 (a-z、A-Z、0-9 或底線)、英文句號或連字號,這些是電子郵件地址的第一部分最常用的有效字元。\- (表示連字號) 必須位於方括號內的清單結尾處。
- 英文破折號和句號前方的「\」會「逸出」這些字元,換句話說,「\」表示英文破折號和句號本身並不是規則運算式的特殊字元,不需要在方括號內逸出英文句號。
- {0,25} 表示有 0 到 25 個前述字元集的字元,會出現在 @ 這個符號前方。在規則運算式中,內容規範電子郵件設定可以為每個字元集比對多達 25 個字元。
- (...) 格式可用以建立網域群組,而分隔網域的 | 字元表示「或」。
|
比對範圍內的任何 IP 位址 |
使用範例 |
比對 192.168.1.0 至 192.168.1.255 之間的任何 IP 位址。 |
規則運算式範例 |
範例 1:192\.168\.1\.
範例 2:192\.168\.1\.\d{1,3} |
注意事項 |
- 每個英文句號前方的「\」會「逸出」句號,換句話說,「\」表示英文句號本身並不是規則運算式的特殊字元。
- 在範例 1 中,由於最後一個英文句號後面沒有任何字元,因此不論後接任何數字,規則運算式都會比對所有開頭為 192.168.1. 的 IP 位址。
- 在範例 2 中,\d 會在最後一個英文句號後面,比對 0 到 9 之間的任何數字,而 {1,3} 表示最後一個英文句號後面會有 1 到 3 位數字,因此規則運算式會比對任何開頭為 192.168.1. 的完整 IP 位址。此外,這個規則運算式也會比對無效的 IP 位址,例如 192.168.1.999。
|
比對按英文字母順序排序的格式 |
使用範例 |
比對貴公司的訂購單號碼。此號碼有各種可能的格式,例如:
- PO nn-nnnnn
- PO-nn-nnnn
- PO# nn nnnn
- PO#nn-nnnn
- PO nnnnnn
|
規則運算式範例 |
(\W|^)po[#\-]{0,1}\s{0,1}\d{2}[\s-]{0,1}\d{4}(\W|$) |
注意事項 |
- \W 會比對字母、數字或底線以外的任何字元,並且讓規則運算式無法比對數字前後的字元。
- ^ 會比對新行的開頭,允許規則運算式比對新行開頭的數字,該數字前方沒有其他字元。
- $ 會比對行的結尾,允許規則運算式比對行結尾的數字,該數字後方沒有其他字元。
- [#\-] 會比對字母 po 後面的井字號或連字號,而 {0,1} 表示其中一個字元會出現 0 或 1 次。\- (表示連字號) 必須位於方括號內的清單結尾處。
- \s 會比對空格,而 {0,1} 表示空格會出現 0 或 1 次。
- \d 會比對 0 到 9 之間的任何數字,而 {2} 表示數字中的這個位置必須恰有 2 個數字。
|