正規表示式規則
| 項目名稱 | 慣用正規表示式符號 | 使用範例與說明 | ||
|---|---|---|---|---|
| 任意字元 | . | c.t — 表示如 “cat”、“cot” 這類單字 | ||
| 字元範圍中的字元 | [] | [b-d]ell — 表示如 “bell”、“cell”、“dell” 這類單字 [ty]ell — 表示單字 “tell” 和 “yell” | ||
| 不在字元範圍中的字元 | [^] | [^y]ell — 表示如 “dell”、“cell”、“tell” 這類單字,但不允許 “yell” [^n-s]ell — 表示如 “bell”、“cell” 這類單字,但不允許 “nell”、“oell”、“pell”、“qell”、“rell” 和 “sell” | ||
| 或 | \ | c(a\ | u)t — 表示單字 “cat” 和 “cut” | |
| 連續出現 0 次或多次 | * | 10* — 表示數字 1、10、100、1000 等 | ||
| 連續出現 1 次或多次 | + | 10+ — 允許數字 10、100、1000 等,但不允許 1。 | ||
| 字母或數字 | [0-9a-zA-Z] | [0-9a-zA-Z] — 允許單一字元;[0-9a-zA-Z]+ — 允許任何單字 | ||
| 大寫拉丁字母 | [A-Z] | <br /> | ||
| 小寫拉丁字母 | [a-z] | <br /> | ||
| 大寫西里爾字母 | [А-Я] | <br /> | ||
| 小寫西里爾字母 | [а-я] | <br /> | ||
| 數字 | [0-9] | <br /> | ||
| 空白字元 | [\s] | <br /> | ||
| 系統字元 | @ | <br /> | ||
| 來自字典的單字 | @(Dictionary) | Dictionary 參數會設定使用者字典的路徑,並從該字典中擷取單字。Linux 路徑範例:@(/opt/MyDictionary.amd) macOS 路徑範例:“/Users/user/Documents/MyDictionary.amd 在 Windows 中,路徑中的反斜線必須成對輸入。例如:@(D:\MyFolder\MyDictionary.amd)。<Note> 某些程式語言 (例如 C++) 要求您在 string 常值中跳脫反斜線。在這種情況下,您需要使用兩個已跳脫的反斜線,因此最後會得到四個反斜線。上述範例在 C++ 中如下所示:</Note> L"@(D:\\\\\\\\MyFolder\\\\\\\\MyDictionary.amd)" |
- 正規表示式中有些字元屬於「輔助」字元,也就是用於系統用途。如上表所示,這類字元包括方括號、句點等。如果您想將輔助字元當作一般字元輸入,請在前面加上反斜線 ()。例如:[t-v]x+ 表示如 “tx”、“txx”、“txxx” 等單字,以及 “ux”、“uxx” 等;而 [t-v]x+ 則表示如 “[t-v]x”、“[t-v]xx”、“[t-v]xxx” 等單字。
- 如果您需要將某些正規表示式元素分組,請使用括號。例如,(a|b)+|c 表示 “c” 以及如 “abbbaaabbb”、“ababab” 等各種組合 (即任何非零長度的單字,其中可包含任意數量、任意順序的 a 和 b) ;而 a|b+|c 則表示 “a”、“c”,以及 “b”、“bb”、“bbb” 等。
正規表示式範例
用於資料擷取
- 僅允許字典中的單字作為辨識結果:將 IBaseLanguage::AllowWordsFromDictionaryOnly 屬性設為 TRUE。這對於精確比對是必要的。
- 辨識語言的字母集只能包含正規表示式中使用的字元:指定 IBaseLanguage::LetterSet 屬性。這是必要的,因為即使某些字元不符合正規表示式,仍可能辨識出語言字母表中的字元。
- 將 IBaseLanguage::IsNaturalLanguage 屬性設為 FALSE。
Windows 範例
C# 程式碼
C# 程式碼
